I am using Delphi Professional 6.0 pack 2 with ICS. I'm not sure what version of ICS I am using since I don't see the version number in the README. However, I checked HttPProt.pas and the final comment reads:
"Oct 15, 2004 V1.71 [email protected] enhanced basic and NTLM authentifications methods. Event OnNTLMAuthStep has been removed." I am trying to access a server that requires Basic Authentication. I can access the server without problem using FireFox. When I try it with THttpCli it hangs on the second attempt after it sends the request with the proper Authentication header line. I matched the Header data up as best as I could between what FireFox is sending and with what THttpCli sends during a Post attempt. I captured the Header and Data send and receive events and the Headers appear to be identical where it counts (Authorization, Content-Type, Accept, etc.). Note, I configured the Headers using the THttpCli properties, not by modifying the data in the OnCommand event (UserName, Password, Accept, ContentTypePost, etc.). I logged the transaction and I can see that THttpCli handles the initial 401 error, closes and reopens the connection, and makes the second attempt with the correct Authorization line in the Header data. I matched the encoded UserName/Password to the FireFox session and they are identical. However, after the request is sent with the Authorization data, THttpCli just hangs waiting for something until I Abort the connection. Does anyone know what is going wrong here or what I can try to debug it? I have included the log I captured during the THttpCli Post session. I have removed the encoded UserName/Password and added comments where I thought it might help. Thanks, Robert ------------------------------------------------------------------- RESPONSE LOG Retrieving URL. HttpCli1: Socket state change: Invalid state HttpCli1: Socket state change: Invalid state HttpCli1: Socket state change: Invalid state HttpCli1: Socket state change: Invalid state HttpCli1: Session connected. HttpCli1: Socket state change: Invalid state HttpCli1: Request Header begins. HttpCli1: Before Header send.! HttpCli1: Command: POST /rev.cgi HTTP/1.0 HttpCli1: Command: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HttpCli1: Command: Content-Type: application/xml; charset=UTF-8 HttpCli1: Command: User-Agent: Mozilla/4.0 (compatible; ICS) HttpCli1: Command: Host: 127.0.0.1 HttpCli1: Command: Pragma: no-cache HttpCli1: Command: Content-Length: 26 HttpCli1: Request header ends. HttpCli1: Command: HttpCli1: Send begins. HttpCli1: Send data event, length: 26 HttpCli1: Send ends. // I DO NOT GET PAST THIS POINT DURING THE AUTHORIZATION ATTEMPT. HttpCli1: Header begins. HttpCli1: Header Data. HttpCli1: Header Data. HttpCli1: Header Data. HttpCli1: Header Data. HttpCli1: Header Data. HttpCli1: Header Data. HttpCli1: Header ends. HttpCli1: Socket state change: Invalid state HttpCli1: Header ends. HttpCli1: Document begins. HttpCli1: Doc data event, length: 173 HttpCli1: Document ended. HttpCli1: Session closed. // ----> AUTHORIZATION ATTEMPT HttpCli1: Socket state change: Invalid state HttpCli1: Socket state change: Invalid state HttpCli1: Socket state change: Invalid state HttpCli1: Socket state change: Invalid state HttpCli1: Session connected. HttpCli1: Socket state change: Invalid state HttpCli1: Request Header begins. HttpCli1: Before Header send.! HttpCli1: Command: POST /rev.cgi HTTP/1.0 HttpCli1: Command: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 HttpCli1: Command: Content-Type: application/xml; charset=UTF-8 HttpCli1: Command: User-Agent: Mozilla/4.0 (compatible; ICS) HttpCli1: Command: Host: 127.0.0.1 HttpCli1: Command: Pragma: no-cache HttpCli1: Command: Content-Length: 26 HttpCli1: Command: Authorization: Basic (encoded login details removed by me for privacy reasons but it matches the FireFox session) HttpCli1: Request header ends. HttpCli1: Command: HttpCli1: Send begins. HttpCli1: Send ends. // THttpCli HANGS HERE. // ------------ END RESPONSE LOG ------------------- -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
