Próbuje sczytać dane z api na http://del.icio.us Przez przeglądarkę jest ok, ale gdy używam takiego kodu:
<?php
function get_post($count)
{
$username = "trutututu";
$password = "lalalala";
$pro = "https://";
$host = "api.del.icio.us";
$port = 80;
$path = "/v1/posts/get";
$msg =
"GET $path HTTP/1.0\r\n".
"Host: $pro$host\r\n".
"User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)\r\n".
"Accept: */*\r\n".
"Referer: \r\n".
"Pragma: no-cache\r\n".
"Cache-Control: no-cache\r\n".
"Connection: close\r\n".
"Authorization: Basic ".base64_encode($username.':'.$password)."\r\n".
"\r\n";
$fp = @fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp)
echo "$errstr ($errno)<br/>\n";
else
{
fwrite($fp, $msg);
while (!feof($fp))
{
echo fgets($fp, 128);
}
fclose($fp);
}
}
get_post(10);
?>
Wywala Connection Refused (61) na porcie 80, a jak zmienię na 443 to w ogóle nie otrzymuje żadnej odpowiedzi.
Próbowałem odpalać to na różnych serwerach więc raczej nie jest to wina konfiguracji.
Dane $password i $user też sie zgadzają.
Nagłówek http jest chyba poprawmy, szukałem po różnych dokumentach, nie ma tu żadnego błędu (przynajmniej ja takiego nie widzę). Próbowałem różnych kombinacji nagłówka Host i GET - pełen adres, bez https://, sam plik itd...
Sam kod PHP (fsockopen itd) jest poprawny bo jak sie zmienie trochę dane, i wywali tą autoryzację to działa.. nie wiem co może być nie tak :/
dopisane:
problem jest raczej z tym https, bo jak próbuje ściągnąć https://4programmers.net, beż żadnej autoryzacji to dostaje bad requesty