Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Demonstrates KeepSessionLog and SessionLogThe Chilkat Socket component provides properties for keeping a session log making it possible to see the exact bytes received and sent on a TCP/IP or SSL/TLS connection. To enable session logging, set the KeepSessionLog property = True. The SessionLogEncoding property controls how binary, non-printable bytes are represented in the log. There are two possible settings: Possible values are "esc" and "hex". The default value is "esc". When set to "hex", the bytes are encoded as a hexidecimalized string. The "esc" encoding is a C-string like encoding, and is more compact than hex if most of the data to be logged is text. Printable us-ascii chars are unmodified. Common "C" control chars are represented as "\r", "\n", "\t", etc. Non-printable and byte values greater than 0x80 are escaped using a backslash and hex encoding: \xHH. Certain printable chars are backslashed: SPACE, double-quote, single-quote, etc.
Use ChilkatAx-win32.pkg Procedure Test Handle hoSocket Boolean iTls Integer iMaxWaitMillisec Boolean iSuccess Variant vBinData Handle hoBinData String sHttpHeader String sTemp1 Boolean bTemp1 // This example assumes the Chilkat Socket API to have been previously unlocked. // See Socket Unlock Sample for sample code. Get Create (RefClass(cComChilkatSocket)) To hoSocket If (Not(IsComObjectCreated(hoSocket))) Begin Send CreateComObject of hoSocket End // Enable session logging: Set ComKeepSessionLog Of hoSocket To True Set ComSessionLogEncoding Of hoSocket To "esc" Move True To iTls Move 20000 To iMaxWaitMillisec Get ComConnect Of hoSocket "www.chilkatsoft.com" 443 iTls iMaxWaitMillisec To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSocket To sTemp1 Showln sTemp1 Procedure_Return End // Send a GET start line to the web server.. Get ComSendString Of hoSocket "GET /abc123.abc123 HTTP/1.1" + (character(13)) + (character(10)) To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSocket To sTemp1 Showln sTemp1 Procedure_Return End // Send some bytes that will cause an error... Get Create (RefClass(cComChilkatBinData)) To hoBinData If (Not(IsComObjectCreated(hoBinData))) Begin Send CreateComObject of hoBinData End Get ComAppendEncoded Of hoBinData "01020304" "hex" To iSuccess Get pvComObject of hoBinData to vBinData Get ComSendBd Of hoSocket vBinData To iSuccess // Read the response up to the first double CRLF: Get ComReceiveUntilMatch Of hoSocket (character(13)) + (character(10)) + (character(13)) + (character(10)) To sHttpHeader Get ComLastMethodSuccess Of hoSocket To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoSocket To sTemp1 Showln sTemp1 Procedure_Return End // Close the connection with the server // Wait a max of 20 seconds (20000 millsec) Get ComClose Of hoSocket 20000 To iSuccess // Display the session log: Get ComSessionLog Of hoSocket To sTemp1 Showln sTemp1 // The Session log will show the exact bytes sent and received. // In this case, the session log shows: // SendString: GET\x20/abc123.abc123\x20HTTP/1.1\r\n // // SendBytes: \x01\x02\x03\x04 // ReceiveUntilMatch: HTTP/1.1\x20400\x20Bad\x20Request\r\n // Content-Type:\x20text/html;\x20charset=us-ascii\r\n // Server:\x20Microsoft-HTTPAPI/2.0\r\n // Date:\x20Thu,\x2027\x20Oct\x202016\x2013:16:02\x20GMT\r\n // Connection:\x20close\r\n // Content-Length:\x20339\r\n // \r\n // <!DOCTYPE\x20HTML\x20PUBLIC\x20\"-//W3C//DTD\x20HTML\x204.01//EN\"\"http://www.w // 3.org/TR/html4/strict.dtd\">\r\n // <HTML><HEAD><TITLE>Bad\x20Request</TITLE>\r\n // <META\x20HTTP-EQUIV=\"Content-Type\"\x20Content=\"text/html;\x20charset=us-ascii // \"></HEAD>\r\n // <BODY><h2>Bad\x20Request\x20-\x20Invalid\x20Header</h2>\r\n // <hr><p>HTTP\x20Error\x20400.\x20The\x20request\x20has\x20an\x20invalid\x20header // \x20name.</p>\r\n // </BODY></HTML>\r\n // End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.