PureBasic
PureBasic
HTTP POST JSON and Parse JSON Response
See more HTTP Examples
Demonstrates how to send a JSON POST and then parse the JSON response.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(json,"qa_data/json/jsonBodyForHttpPost.json")
If success = 0
Debug CkJsonObject::ckLastErrorText(json)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndIf
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpJson(http,"POST","https://test.something.com/XYZ/API/v1/CreditInsuranceCalculator/CalculatePremiums",json,"application/json",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkJsonObject::ckDispose(json)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
jsonResp.i = CkJsonObject::ckCreate()
If jsonResp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoad(jsonResp,CkHttpResponse::ckBodyStr(resp))
CkJsonObject::setCkEmitCompact(jsonResp, 0)
Debug CkJsonObject::ckEmit(jsonResp)
; The JSON response to be parsed looks like this:
; {
; "LifeAmount": 513.85,
; "LifeResidualAmount": 123.38,
; "CriticalIllnessAmount": 0,
; "CriticalIllnessResidualAmount": 0,
; "DisabilityAmount": 881.70,
; "PolicyFee": 0.00,
; "PolicyFeeSecondary": 0,
; "PolicyFeeHidden": 50.00,
; "PolicyFeeHiddenSecondary": 0
; }
; We can get the floating point numbers as strings. Then convert to double
; using the appropriate string-to-double conversion for your programming language.
; For example, in C++ use atof. In C# use Convert.ToDouble.
lifeAmount.s = CkJsonObject::ckStringOf(jsonResp,"LifeAmount")
lifeResidualAmount.s = CkJsonObject::ckStringOf(jsonResp,"LifeResidualAmount")
Debug "LifeAmount = " + lifeAmount
Debug "LifeResidualAmount = " + lifeResidualAmount
CkJsonObject::ckDispose(json)
CkHttp::ckDispose(http)
CkHttpResponse::ckDispose(resp)
CkJsonObject::ckDispose(jsonResp)
ProcedureReturn
EndProcedure