program testinfo; (* Program to test transfer information functions *) {$INCLUDE curltest.inc} uses curlobj; var MyCurl:tCurl; function ProgressCB(clientp:pointer; dltotal, dlnow, ultotal, ulnow:double ): LongInt; cdecl; begin Write('.'); Result:=0; end; begin MyCurl:=tCurl.Create(nil); with MyCurl do begin if ( ParamCount = 1 ) then URL:=ParamStr(1) else URL:='http://www.netscape.net'; OutputFile:={$IFDEF WIN32}'NUL'{$ELSE}'/dev/null'{$ENDIF}; ProgressFunction:=@ProgressCB; NoProgress:=False; RequestFileTime:=True; FollowLocation:=True; WriteLn('Requested URL: ', URL); Write('Working...'); if Perform then begin WriteLn(#13, 'Effective URL: ', EffectiveUrl); WriteLn('Redirect count: ', RedirectCount); WriteLn('Http code: ', HttpCode:3); WriteLn('Content-Type: ', ContentType); WriteLn('Name lookup time: ', NameLookupTime:7:2, ' sec'); WriteLn('Connect time: ', ConnectTime:7:2, ' sec'); WriteLn('Pre-transfer time: ', PreTransferTime:7:2, ' sec'); WriteLn('Start transfer time: ', StartTransferTime:7:2, ' sec'); WriteLn('Redirect time: ', RedirectTime:7:2, ' sec'); WriteLn('Total time: ', TotalTime:7:2, ' sec'); WriteLn('Download speed: ', SpeedDownload:12:2, ' bps'); WriteLn('Upload speed: ', SpeedUpload:12:2, ' bps'); WriteLn('Request header size: ', RequestSize:10, ' bytes'); WriteLn('Response header size: ', HeaderSize:10, ' bytes'); WriteLn('Actual download size: ', SizeDownload:10, ' bytes'); WriteLn('Content-Length header: ', ContentLengthDownload:10, ' bytes'); WriteLn('Actual upload Size: ', SizeUpload:10, ' bytes'); WriteLn('Content-Length header: ', ContentLengthUpload:10, ' bytes'); WriteLn('Ssl-Verify result: ', SslVerifyResult); WriteLn('File time: ', FileTime); end else WriteLn(ErrorString); Free; end; end.