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
(Tcl) Debug REST HTTP RequestDemonstrates how to generate the HTTP Request (with all headers intact) without actually sending the request. Note: This example requires Chilkat v9.5.0.77 or later.
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # This example will connect to the web server, but does not actually send a request. # When in DebugMode, the request is composed in memory and can be retrieved by calling # GetLastDebugRequest. set rest [new_CkRest] # Connect Code... # URL: https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns set bTls 1 set port 443 set bAutoReconnect 1 set success [CkRest_Connect $rest "test-api.service.hmrc.gov.uk" $port $bTls $bAutoReconnect] if {$success != 1} then { puts "ConnectFailReason: [CkRest_get_ConnectFailReason $rest]" puts [CkRest_lastErrorText $rest] delete_CkRest $rest exit } # Build the request body... set json [new_CkJsonObject] CkJsonObject_UpdateString $json "periodKey" "A001" CkJsonObject_UpdateNumber $json "vatDueSales" "105.50" CkJsonObject_UpdateNumber $json "vatDueAcquisitions" "-100.45" CkJsonObject_UpdateNumber $json "totalVatDue" "5.05" CkJsonObject_UpdateNumber $json "vatReclaimedCurrPeriod" "105.15" CkJsonObject_UpdateNumber $json "netVatDue" "100.10" CkJsonObject_UpdateInt $json "totalValueSalesExVAT" 300 CkJsonObject_UpdateInt $json "totalValuePurchasesExVAT" 300 CkJsonObject_UpdateInt $json "totalValueGoodsSuppliedExVAT" 3000 CkJsonObject_UpdateInt $json "totalAcquisitionsExVAT" 3000 CkJsonObject_UpdateBool $json "finalised" 1 # Add Headers... CkRest_AddHeader $rest "Accept" "application/vnd.hmrc.1.0+json" CkRest_AddHeader $rest "Authorization" "Bearer HMRC_ACCESS_TOKEN" CkRest_AddHeader $rest "Content-Type" "application/json" set sbRequestBody [new_CkStringBuilder] CkJsonObject_EmitSb $json $sbRequestBody # Set DebugMode so that no request is actually sent. CkRest_put_DebugMode $rest 1 set sbResponseBody [new_CkStringBuilder] set success [CkRest_FullRequestSb $rest "POST" "/organisations/vat/MY_HMRC_VRN/returns" $sbRequestBody $sbResponseBody] if {$success != 1} then { puts [CkRest_lastErrorText $rest] delete_CkRest $rest delete_CkJsonObject $json delete_CkStringBuilder $sbRequestBody delete_CkStringBuilder $sbResponseBody exit } # Get the exact contents of what would've been sent. # This includes the HTTP start line, the HTTP request headers, and the request body. # Given that it's possible for the request body to contain binary data, # the GetLastDebugRequest fetches into a BinData object. # In this case, however, our request body contained JSON, so we can # examine it as a string.. set bdRequest [new_CkBinData] set success [CkRest_GetLastDebugRequest $rest $bdRequest] puts "----" puts [CkBinData_getString $bdRequest utf-8] puts "----" # The output for the above case: # POST /organisations/vat/MY_HMRC_VRN/returns HTTP/1.1 # Accept: application/vnd.hmrc.1.0+json # Host: test-api.service.hmrc.gov.uk # Authorization: Bearer HMRC_ACCESS_TOKEN # Content-Type: application/json # Content-Length: 281 # # {"periodKey":"A001","vatDueSales":105.50, ... ,"finalised":true} # # delete_CkRest $rest delete_CkJsonObject $json delete_CkStringBuilder $sbRequestBody delete_CkStringBuilder $sbResponseBody delete_CkBinData $bdRequest |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.