[fpc-pascal] A simple HTTP request with FPC standard units

Michael Van Canneyt michael at freepascal.org
Fri Nov 23 21:07:14 CET 2012



On Fri, 23 Nov 2012, Leonardo M. Ramé wrote:

>
>
>> ________________________________
>> From: silvioprog <silvioprog at gmail.com>
>> To: FPC-Pascal users discussions <fpc-pascal at lists.freepascal.org> 
>> Sent: Friday, November 23, 2012 2:38 PM
>> Subject: Re: [fpc-pascal] A simple HTTP request with FPC standard units
>> 
>>
>> Done:
>>
>>
>> http://bugs.freepascal.org/view.php?id=23372
>>
>>
>>
>>
>> 2012/11/23 silvioprog <silvioprog at gmail.com>
>>
>> I solved the error. In:
>>>
>>>
>>> fphttpclient.pas:line285
>>>
>>> Function TFPCustomHTTPClient.GetServerURL(URI : TURI) : String;
>>>
>>>
>>> Var
>>>   D : String;
>>>
>>>
>>> begin
>>>   D:=URI.Path;
>>>   If (D[1]<>'/') then
>>>     D:='/'+D;
>>>   If (D[Length(D)]<>'/') then
>>>     D:=D+'/';
>>>   Result:=D+URI.Document;
>>>   if (URI.Params<>'') then
>>>     Result:=Result+'?'+URI.Params;
>>> end;
>>>
>>>
>
> The code needed to execute the function could be even smaller if this is changed to a class function. Instead of needing to create an instance, then using, then freeing, the whole thing could something like this:
>
> ...
> begin
>   s := TFPCustomHTTPClient.GetServerURL('http://a_site/a_page');
>   writeln(s);

You mean probably
   s := TFPCustomHTTPClient.Get('http://a_site/a_page');

It could be done, but it will need to create an instance anyway. 
Although I suspect such a simple case is a minority.

Michael.


More information about the fpc-pascal mailing list