Back to Collection Items
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkXml.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
; Use this online tool to generate code from sample XML: Generate Code to Create XML
; The following XML is sent in the request body.
; <?xml version="1.0" encoding="utf-8"?>
; <exchange-rate>
; <rate type="decimal">0.801539004</rate>
; <rate-date type="dateTime">2021-11-22</rate-date>
; <from-currency>
; <code>USD</code>
; </from-currency>
; <to-currency>
; <code>EUR</code>
; </to-currency>
; </exchange-rate>
;
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::setCkTag(xml, "exchange-rate")
CkXml::ckUpdateAttrAt(xml,"rate",1,"type","decimal")
CkXml::ckUpdateChildContent(xml,"rate","0.801539004")
CkXml::ckUpdateAttrAt(xml,"rate-date",1,"type","dateTime")
CkXml::ckUpdateChildContent(xml,"rate-date","2021-11-22")
CkXml::ckUpdateChildContent(xml,"from-currency|code","USD")
CkXml::ckUpdateChildContent(xml,"to-currency|code","EUR")
; Adds the "Authorization: Bearer <access_token>" header.
CkHttp::setCkAuthToken(http, "<access_token>")
sbRequestBody.i = CkStringBuilder::ckCreate()
If sbRequestBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::ckGetXmlSb(xml,sbRequestBody)
resp.i = CkHttp::ckPTextSb(http,"POST","[" + Chr(34) + "code" + Chr(34) + "," + Chr(34) + "decimals" + Chr(34) + "]}]",sbRequestBody,"utf-8","application/xml",0,0)
If CkHttp::ckLastMethodSuccess(http) = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkXml::ckDispose(xml)
CkStringBuilder::ckDispose(sbRequestBody)
ProcedureReturn
EndIf
Debug Str(CkHttpResponse::ckStatusCode(resp))
Debug CkHttpResponse::ckBodyStr(resp)
CkHttpResponse::ckDispose(resp)
CkHttp::ckDispose(http)
CkXml::ckDispose(xml)
CkStringBuilder::ckDispose(sbRequestBody)
ProcedureReturn
EndProcedure
Curl Command
curl -X POST
-H "Authorization: Bearer <access_token>"
-d '<exchange-rate>
<rate type="decimal">0.801539004</rate>
<rate-date type="dateTime">2021-11-22</rate-date>
<from-currency>
<code>USD</code>
</from-currency>
<to-currency>
<code>EUR</code>
</to-currency>
</exchange-rate>'
https://domain.com/exchange_rates?fields=["id","rate","rate_date",{"from_currency": ["code","decimals"]},{"to_currency": ["code","decimals"]}]
Postman Collection Item JSON
{
"name": "Create FxRates",
"request": {
"method": "POST",
"header": [
],
"body": {
"mode": "raw",
"raw": "<exchange-rate>\n <rate type=\"decimal\">0.801539004</rate>\n <rate-date type=\"dateTime\">2021-11-22</rate-date>\n <from-currency>\n <code>USD</code>\n </from-currency>\n <to-currency>\n <code>EUR</code>\n </to-currency>\n</exchange-rate>",
"options": {
"raw": {
"language": "xml"
}
}
},
"url": {
"raw": "{{URL}}/exchange_rates?fields=[\"id\",\"rate\",\"rate_date\",{\"from_currency\": [\"code\",\"decimals\"]},{\"to_currency\": [\"code\",\"decimals\"]}]",
"host": [
"{{URL}}"
],
"path": [
"exchange_rates"
],
"query": [
{
"key": "fields",
"value": "[\"id\",\"rate\",\"rate_date\",{\"from_currency\": [\"code\",\"decimals\"]},{\"to_currency\": [\"code\",\"decimals\"]}]"
}
]
}
},
"response": [
]
}