![]() |
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 Extension) 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 include("chilkat.php"); // Use "chilkat_9_5_0.php" for versions of Chilkat < 10.0.0 // 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. $rest = new CkRest(); // Connect Code... // URL: https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns $bTls = true; $port = 443; $bAutoReconnect = true; $success = $rest->Connect('test-api.service.hmrc.gov.uk',$port,$bTls,$bAutoReconnect); if ($success != true) { print 'ConnectFailReason: ' . $rest->get_ConnectFailReason() . "\n"; print $rest->lastErrorText() . "\n"; exit; } // Build the request body... $json = new CkJsonObject(); $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',true); // Add Headers... $rest->AddHeader('Accept','application/vnd.hmrc.1.0+json'); $rest->AddHeader('Authorization','Bearer HMRC_ACCESS_TOKEN'); $rest->AddHeader('Content-Type','application/json'); $sbRequestBody = new CkStringBuilder(); $json->EmitSb($sbRequestBody); // Set DebugMode so that no request is actually sent. $rest->put_DebugMode(true); $sbResponseBody = new CkStringBuilder(); $success = $rest->FullRequestSb('POST','/organisations/vat/MY_HMRC_VRN/returns',$sbRequestBody,$sbResponseBody); if ($success != true) { 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.. $bdRequest = new CkBinData(); $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.