Witam!
Jak odczytać rozmiar pliku znajdującego się w internecie na jakiejś stronie?
Używam C++ Buildera 6 :)
Witam!
Jak odczytać rozmiar pliku znajdującego się w internecie na jakiejś stronie?
Używam C++ Buildera 6 :)
Trzeba wysłać odpowiedni nagłówek HTTP
Hmmmm... Próbowałem coś wykombinować i przekształciłem pewien kod z Delphi(http://4programmers.net/Delphi/FAQ/Sieć/Internet/A_jak_sprawdzić_czy_plik_znajduje_się_na_serwerze_(HTTP)bez_próby_jego_ściągnięcia) na c++:
String host="http:////google.pl";
String data="HEAD HTTP//1.0\r\nAccept: ..., *//* \r\nReferer: "+host;
data+="\r\nAccept-Language: pl\r\nUser-Agent: Mozilla//4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\nHost: "+host;
data+="\r\nConnection: close\r\n\r\n";
IdTCP->Port=80;
IdTCP->Host=Edit1->Text;
IdTCP->Connect(3000);
IdTCP->WriteLn(data);
RichEdit->Lines->Add(IdTCP->ReadLn(" ",1000,30000));
Jednak niestety źle to zrobiłem ;P Może ktoś mi pomóc?? Mi pokazuje że błąd leży w przedostatniej linicje, czyli tam gdzie się wysyła nagłówek.... :(
Znalazłem rozwiązanie:
String host="http://google.pl";
IdHTTP->Head(host);
rozmiar=IdHTTP->Response->ContentLength;
Przyczym ustawiłem właściwości idHTTP->Request:
AllowCookies = True
HandleRedirects = True
ProxyParams.BasicAuthentication = False
Request.Connection = 'close'
Request.Accept = '*/*'
Request.AcceptEncoding = 'gzip'
Request.AcceptLanguage = 'pl'
Request.BasicAuthentication = False
Request.UserAgent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Neostrada Plus 5.6; Maxthon)'