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
(PureBasic) Shippo Create a New ManifestDemonstrates how to create a manifest for your shipments. For more information, see https://goshippo.com/docs/manifests/
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Implements the following CURL command: ; curl https://api.goshippo.com/manifests/ ; -H "Authorization: ShippoToken shippo_test_831a7a042784f523b95db65444e6e084b636764b" \ ; -H "Content-Type: application/json" \ ; -d '{ ; "carrier_account": "b741b99f95e841639b54272834bc478c", ; "shipment_date": "2014-05-16T23:59:59Z", ; "address_from": "28828839a2b04e208ac2aa4945fbca9a", ; "transactions": [ ; "64bba01845ef40d29374032599f22588", ; "c169aa586a844cc49da00d0272b590e1" ; ], ; "async": false ; }' ; Use this online tool to generate code from sample JSON: ; Generate Code to Create JSON ; The following JSON is sent in the request body. ; { ; "carrier_account": "b741b99f95e841639b54272834bc478c", ; "shipment_date": "2014-05-16T23:59:59Z", ; "address_from": "28828839a2b04e208ac2aa4945fbca9a", ; "transactions": [ ; "64bba01845ef40d29374032599f22588", ; "c169aa586a844cc49da00d0272b590e1" ; ], ; "async": false ; } json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"carrier_account","b741b99f95e841639b54272834bc478c") CkJsonObject::ckUpdateString(json,"shipment_date","2014-05-16T23:59:59Z") CkJsonObject::ckUpdateString(json,"address_from","28828839a2b04e208ac2aa4945fbca9a") CkJsonObject::ckUpdateString(json,"transactions[0]","64bba01845ef40d29374032599f22588") CkJsonObject::ckUpdateString(json,"transactions[1]","c169aa586a844cc49da00d0272b590e1") CkJsonObject::ckUpdateBool(json,"async",0) CkHttp::ckSetRequestHeader(http,"Authorization","ShippoToken shippo_test_831a7a042784f523b95db65444e6e084b636764b") CkHttp::ckSetRequestHeader(http,"Content-Type","application/json") resp.i = CkHttp::ckPostJson3(http,"https://api.goshippo.com/manifests/","application/json",json) If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf sbResponseBody.i = CkStringBuilder::ckCreate() If sbResponseBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttpResponse::ckGetBodySb(resp,sbResponseBody) jResp.i = CkJsonObject::ckCreate() If jResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(jResp,sbResponseBody) CkJsonObject::setCkEmitCompact(jResp, 0) Debug "Response Body:" Debug CkJsonObject::ckEmit(jResp) respStatusCode.i = CkHttpResponse::ckStatusCode(resp) Debug "Response Status Code = " + Str(respStatusCode) If respStatusCode >= 400 Debug "Response Header:" Debug CkHttpResponse::ckHeader(resp) Debug "Failed." CkHttpResponse::ckDispose(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndIf CkHttpResponse::ckDispose(resp) ; Sample JSON response: ; (Sample code for parsing the JSON response is shown below) ; { ; "address_from": "28828839a2b04e208ac2aa4945fbca9a", ; "carrier_account": "b741b99f95e841639b54272834bc478c", ; "documents": [ ; "https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA" ; ], ; "object_created": "2014-05-16T03:43:52.765Z", ; "object_id": "0fadebf6f60c4aca95fa01bcc59c79ae", ; "object_owner": "mrhippo@goshippo.com", ; "object_updated": "2014-05-16T03:43:55.445Z", ; "shipment_date": "2014-05-16T23:59:59Z", ; "status": "SUCCESS", ; "transactions": [ ; "64bba01845ef40d29374032599f22588", ; "c169aa586a844cc49da00d0272b590e1" ; ] ; } ; Sample code for parsing the JSON response... ; Use the following online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON strVal.s address_from.s = CkJsonObject::ckStringOf(jResp,"address_from") carrier_account.s = CkJsonObject::ckStringOf(jResp,"carrier_account") object_created.s = CkJsonObject::ckStringOf(jResp,"object_created") object_id.s = CkJsonObject::ckStringOf(jResp,"object_id") object_owner.s = CkJsonObject::ckStringOf(jResp,"object_owner") object_updated.s = CkJsonObject::ckStringOf(jResp,"object_updated") shipment_date.s = CkJsonObject::ckStringOf(jResp,"shipment_date") status.s = CkJsonObject::ckStringOf(jResp,"status") i.i = 0 count_i.i = CkJsonObject::ckSizeOfArray(jResp,"documents") While i < count_i CkJsonObject::setCkI(jResp, i) strVal = CkJsonObject::ckStringOf(jResp,"documents[i]") i = i + 1 Wend i = 0 count_i = CkJsonObject::ckSizeOfArray(jResp,"transactions") While i < count_i CkJsonObject::setCkI(jResp, i) strVal = CkJsonObject::ckStringOf(jResp,"transactions[i]") i = i + 1 Wend CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkStringBuilder::ckDispose(sbResponseBody) CkJsonObject::ckDispose(jResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.