AutoIt
AutoIt
Debug REST HTTP Request
See more REST Examples
Demonstrates 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.
Chilkat AutoIt Downloads
Local $bSuccess = False
; 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.
$oRest = ObjCreate("Chilkat.Rest")
; Connect Code...
; URL: https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns
Local $bTls = True
Local $iPort = 443
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("test-api.service.hmrc.gov.uk",$iPort,$bTls,$bAutoReconnect)
If ($bSuccess <> True) Then
ConsoleWrite("ConnectFailReason: " & $oRest.ConnectFailReason & @CRLF)
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; Build the request body...
$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("periodKey","A001")
$oJson.UpdateNumber("vatDueSales","105.50")
$oJson.UpdateNumber("vatDueAcquisitions","-100.45")
$oJson.UpdateNumber("totalVatDue","5.05")
$oJson.UpdateNumber("vatReclaimedCurrPeriod","105.15")
$oJson.UpdateNumber("netVatDue","100.10")
$oJson.UpdateInt("totalValueSalesExVAT",300)
$oJson.UpdateInt("totalValuePurchasesExVAT",300)
$oJson.UpdateInt("totalValueGoodsSuppliedExVAT",3000)
$oJson.UpdateInt("totalAcquisitionsExVAT",3000)
$oJson.UpdateBool("finalised",True)
; Add Headers...
$oRest.AddHeader("Accept","application/vnd.hmrc.1.0+json")
$oRest.AddHeader("Authorization","Bearer HMRC_ACCESS_TOKEN")
$oRest.AddHeader("Content-Type","application/json")
$oSbRequestBody = ObjCreate("Chilkat.StringBuilder")
$oJson.EmitSb($oSbRequestBody)
; Set DebugMode so that no request is actually sent.
$oRest.DebugMode = True
$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oRest.FullRequestSb("POST","/organisations/vat/MY_HMRC_VRN/returns",$oSbRequestBody,$oSbResponseBody)
If ($bSuccess <> True) Then
ConsoleWrite($oRest.LastErrorText & @CRLF)
Exit
EndIf
; 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..
$oBdRequest = ObjCreate("Chilkat.BinData")
$bSuccess = $oRest.GetLastDebugRequest($oBdRequest)
ConsoleWrite("----" & @CRLF)
ConsoleWrite($oBdRequest.GetString("utf-8") & @CRLF)
ConsoleWrite("----" & @CRLF)
; 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}
;
;