PureBasic
PureBasic
Example: Http.HttpReq method
Demonstrates how to call the HttpReq method.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"
IncludeFile "CkHttpRequest.pb"
Procedure ChilkatExample()
success.i = 0
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = 0
; This example will send an HTTP POST with the body of the HTTP request containing JSON.
; Create the following JSON: { "name": "Harry", "state": "FL" }
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(json,"name","Harry")
CkJsonObject::ckUpdateString(json,"state","FL")
; Specify the details of the request
req.i = CkHttpRequest::ckCreate()
If req.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttpRequest::setCkHttpVerb(req, "POST")
CkHttpRequest::setCkContentType(req, "application/json")
CkHttpRequest::ckLoadBodyFromString(req,CkJsonObject::ckEmit(json),"utf-8")
; Send the charset attribute in the HTTP request header.
CkHttpRequest::setCkSendCharset(req, 1)
CkHttpRequest::setCkCharset(req, "utf-8")
; Send the POST
; You can send the POST to the URL below.
; The response will contain the raw body of the request that was sent.
; (i.e. everything except the HTTP request header).
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpReq(http,"https://www.chilkatsoft.com/echo_request_body.asp",req,resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; Examine the HTTP request header we sent:
Debug CkHttp::ckLastHeader(http)
; The response body contains the raw content of the HTTP request body we sent.
Debug CkHttpResponse::ckBodyStr(resp)
; Sample output:
; POST /echo_request_body.asp HTTP/1.1
; Host: www.chilkatsoft.com
; Content-Type: application/json; charset=utf-8
; Content-Length: 29
;
;
; {"name":"Harry","state":"FL"}
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndProcedure