![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript 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
(PureBasic) curl POST with JSON Input and JSON OutputSee more CURL ExamplesDemonstrates running a simple curl command with JSON input and JSON output.Note: This example requires Chilkat v11.5.0 or greater.
IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkHttpCurl.pb" Procedure ChilkatExample() success.i = 0 ; Run the following curl command ; curl -X POST https://httpbin.org/post \ ; -H "Content-Type: application/json" \ ; -d '{ ; "title": "foo", ; "body": "bar", ; "userId": 1 ; }' ; The backslashes at the end of lines are not required. Chilkat ignores them if present. sbTargetCurl.i = CkStringBuilder::ckCreate() If sbTargetCurl.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckAppendLn(sbTargetCurl," curl -X POST https://httpbin.org/post \") CkStringBuilder::ckAppendLn(sbTargetCurl," -H " + Chr(34) + "Content-Type: application/json" + Chr(34) + " \") CkStringBuilder::ckAppendLn(sbTargetCurl," -d '{") CkStringBuilder::ckAppendLn(sbTargetCurl," " + Chr(34) + "title" + Chr(34) + ": " + Chr(34) + "foo" + Chr(34) + ",") CkStringBuilder::ckAppendLn(sbTargetCurl," " + Chr(34) + "body" + Chr(34) + ": " + Chr(34) + "bar" + Chr(34) + ",") CkStringBuilder::ckAppendLn(sbTargetCurl," " + Chr(34) + "userId" + Chr(34) + ": 1") CkStringBuilder::ckAppendLn(sbTargetCurl," }'") httpCurl.i = CkHttpCurl::ckCreate() If httpCurl.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Run the curl command. success = CkHttpCurl::ckDoYourThing(httpCurl,CkStringBuilder::ckGetAsString(sbTargetCurl)) If success = 0 Debug CkHttpCurl::ckLastErrorText(httpCurl) CkStringBuilder::ckDispose(sbTargetCurl) CkHttpCurl::ckDispose(httpCurl) ProcedureReturn EndIf responseJson.i = CkJsonObject::ckCreate() If responseJson.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(responseJson, 0) CkHttpCurl::ckGetResponseJson(httpCurl,responseJson) statusCode.i = CkHttpCurl::ckStatusCode(httpCurl) Debug "response status code: " + Str(statusCode) Debug CkJsonObject::ckEmit(responseJson) ; Output: ; response status code: 200 ; { ; "args": {}, ; "data": "{\r\n \"title\": \"foo\",\r\n \"body\": \"bar\",\r\n \"userId\": 1\r\n }", ; "files": {}, ; "form": {}, ; "headers": { ; "Content-Length": "96", ; "Content-Type": "application/json", ; "Host": "httpbin.org", ; "X-Amzn-Trace-Id": "Root=1-69e8db8b-459b3bdf7b7a3bc749184968" ; }, ; "json": { ; "body": "bar", ; "title": "foo", ; "userId": 1 ; }, ; "origin": "123.222.222.222", ; "url": "https://httpbin.org/post" ; } ; ---------------------------------------------------------------------------------- ; Another example: ; curl -X POST https://postman-echo.com/post \ ; -H "Content-Type: application/json" \ ; -d '{"foo":"bar"}' targetCurl.s = "curl -X POST https://postman-echo.com/post -H " + Chr(34) + "Content-Type: application/json" + Chr(34) + " -d '{" + Chr(34) + "foo" + Chr(34) + ":" + Chr(34) + "bar" + Chr(34) + "}'" ; Run the curl command. success = CkHttpCurl::ckDoYourThing(httpCurl,targetCurl) If success = 0 Debug CkHttpCurl::ckLastErrorText(httpCurl) CkStringBuilder::ckDispose(sbTargetCurl) CkHttpCurl::ckDispose(httpCurl) CkJsonObject::ckDispose(responseJson) ProcedureReturn EndIf CkHttpCurl::ckGetResponseJson(httpCurl,responseJson) statusCode = CkHttpCurl::ckStatusCode(httpCurl) Debug "response status code: " + Str(statusCode) Debug CkJsonObject::ckEmit(responseJson) ; Output: ; response status code: 200 ; { ; "args": {}, ; "data": { ; "foo": "bar" ; }, ; "files": {}, ; "form": {}, ; "headers": { ; "host": "postman-echo.com", ; "content-length": "13", ; "content-type": "application/json", ; "x-forwarded-proto": "https", ; "accept-encoding": "gzip, br" ; }, ; "json": { ; "foo": "bar" ; }, ; "url": "https://postman-echo.com/post" ; } CkStringBuilder::ckDispose(sbTargetCurl) CkHttpCurl::ckDispose(httpCurl) CkJsonObject::ckDispose(responseJson) ProcedureReturn EndProcedure |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.