![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(PHP ActiveX) 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.
<?php // 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. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Rest') $rest = new COM("Chilkat.Rest"); // Connect Code... // URL: https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns $bTls = 1; $port = 443; $bAutoReconnect = 1; $success = $rest->Connect('test-api.service.hmrc.gov.uk',$port,$bTls,$bAutoReconnect); if ($success != 1) { print 'ConnectFailReason: ' . $rest->ConnectFailReason . "\n"; print $rest->LastErrorText . "\n"; exit; } // Build the request body... // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.JsonObject') $json = new COM("Chilkat.JsonObject"); $json->UpdateString('periodKey','A001'); $json->UpdateNumber('vatDueSales','105.50'); $json->UpdateNumber('vatDueAcquisitions','-100.45'); $json->UpdateNumber('totalVatDue','5.05'); $json->UpdateNumber('vatReclaimedCurrPeriod','105.15'); $json->UpdateNumber('netVatDue','100.10'); $json->UpdateInt('totalValueSalesExVAT',300); $json->UpdateInt('totalValuePurchasesExVAT',300); $json->UpdateInt('totalValueGoodsSuppliedExVAT',3000); $json->UpdateInt('totalAcquisitionsExVAT',3000); $json->UpdateBool('finalised',1); // Add Headers... $rest->AddHeader('Accept','application/vnd.hmrc.1.0+json'); $rest->AddHeader('Authorization','Bearer HMRC_ACCESS_TOKEN'); $rest->AddHeader('Content-Type','application/json'); // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.StringBuilder') $sbRequestBody = new COM("Chilkat.StringBuilder"); $json->EmitSb($sbRequestBody); // Set DebugMode so that no request is actually sent. $rest->DebugMode = 1; // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.StringBuilder') $sbResponseBody = new COM("Chilkat.StringBuilder"); $success = $rest->FullRequestSb('POST','/organisations/vat/MY_HMRC_VRN/returns',$sbRequestBody,$sbResponseBody); if ($success != 1) { print $rest->LastErrorText . "\n"; 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.. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.BinData') $bdRequest = new COM("Chilkat.BinData"); $success = $rest->GetLastDebugRequest($bdRequest); print '----' . "\n"; print $bdRequest->getString('utf-8') . "\n"; print '----' . "\n"; // 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} // // ?> |
||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.