[fpc-devel] fphttpclient cannot download a file from w3.org

Ondrej Pokorny lazarus at kluug.net
Mon Jul 1 17:59:02 CEST 2019


Thank you Michael for the response. I'll check what headers INDY sends.

Ondrej


On 01.07.2019 14:57, Michael Van Canneyt wrote:
>
> I tested:
>
> If I run a strace, it just hangs on the read operation:
>
> connect(3, {sa_family=AF_INET, sin_port=htons(80), 
> sin_addr=inet_addr("128.30.52.100")}, 16) = -1 EINPROGRESS (Operation 
> now in progress)
> select(4, NULL, [3], NULL, {tv_sec=3, tv_usec=0}) = 1 (out [3], left 
> {tv_sec=2, tv_usec=884913})
> getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
> fcntl(3, F_GETFL)                       = 0x802 (flags O_RDWR|O_NONBLOCK)
> fcntl(3, F_SETFL, O_RDWR)               = 0
> sendto(3, "GET /TR/2002/REC-xmldsig-core-20"..., 112, 0, NULL, 0) = 112
> recvfrom(3,
>
> If I do the same with 'wget' it also hangs but in the end gets through..
>
> But if you add some headers, you get a proper error response.
>
> There is little I can do about that. I can only surmise Indy & wget 
> send different
> headers (E.G.user-agent) and the server reacts differently on that.
>
>
>
> Michael.
>
> On Mon, 1 Jul 2019, Ondrej Pokorny wrote:
>
>> Hello,
>>
>> I cannot download 
>> http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd 
>> with TFPHTTPClient. Delphi INDY downloads it just fine. Does anybody 
>> know what I am missing?
>>
>> Test code:
>>
>> program Project1;
>> uses Classes, SysUtils, fphttpclient;
>> procedure DownloadFile(const aURI: string; out outStream: TStream);
>> var
>>   xClient: TFPHTTPClient;
>> begin
>>   outStream := nil;
>>   xClient := TFPHTTPClient.Create(nil);
>>   try
>>     xClient.AllowRedirect := True;
>>     outStream := TMemoryStream.Create;
>>     xClient.Get(aURI, outStream);
>>     outStream.Position := 0;
>>   except
>>     on E: Exception do
>>     begin
>>       FreeAndNil(outStream);
>>       Writeln(E.ClassName);
>>       Writeln(E.Message);
>>     end;
>>   end;
>>   xClient.Free;
>> end;
>> var
>>   S: TStream;
>> begin
>> DownloadFile('http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd', 
>> S);
>>   S.Free;
>>   Readln;
>> end.
>>
>> Fails with exception:
>>
>> EHTTPClient
>> Error reading data from socket
>>
>> #0 fpc_raiseexception(0x145fb14, 0x0, 0xffffffff) at 
>> ..\inc\except.inc:158
>> #1 FILLBUFFER(0x145fb14) at fcl-web\src\base\fphttpclient.pp:731
>> #2 READSTRING(0x15e1c30, 0x0) at fcl-web\src\base\fphttpclient.pp:749
>> #3 READRESPONSEHEADERS(0x15e1c30) at 
>> fcl-web\src\base\fphttpclient.pp:854
>> #4 READRESPONSE(0x15e1c30, 0x15b5dc0, 0x145fdb8, 0, false) at 
>> fcl-web\src\base\fphttpclient.pp:1132
>> #5 DONORMALREQUEST(0x15e1c30, {PROTOCOL = 0x15b5e4c 'http', USERNAME 
>> = 0x0, PASSWORD = 0x0, HOST = 0x15b5ecc 'www.w3.org', PORT = 0, PATH 
>> = 0x1601c9c '/TR/2002/REC-xmldsig-core'..., DOCUMENT = 0x15bc58c 
>> 'xmldsig-core-schema.xsd', PARAMS = 0x0, BOOKMARK = 0x0, HASAUTHORITY 
>> = true}, 0x449d58 'GET', 0x15b5dc0, 0x145fdb8, 0, false, false) at 
>> fcl-web\src\base\fphttpclient.pp:1226
>> #6 DOMETHOD(0x15e1c30, 0x449d58 'GET', 0x443060 
>> 'http://www.w3.org/TR/2002'..., 0x15b5dc0, 0x145fdb8, 0) at 
>> fcl-web\src\base\fphttpclient.pp:1283
>> #7 HTTPMETHOD(0x15e1c30, 0x449d58 'GET', 0x443060 
>> 'http://www.w3.org/TR/2002'..., 0x15b5dc0, 0x145fdb8, 0) at 
>> fcl-web\src\base\fphttpclient.pp:1397
>> #8 GET(0x15e1c30, 0x443060 'http://www.w3.org/TR/2002'..., 0x15b5dc0) 
>> at fcl-web\src\base\fphttpclient.pp:1439
>> #9 DOWNLOADFILE(0x443060 'http://www.w3.org/TR/2002'..., 0x15b5dc0) 
>> at project1.lpr:14
>> #10 main at project1.lpr:30
>>
>> Ondrej
>>
>> _______________________________________________
>> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>>
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20190701/d20c4442/attachment-0001.html>


More information about the fpc-devel mailing list