Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.0.0+

Example: Http.HttpReq method

Demonstrates how to call the HttpReq method.

Chilkat PureBasic Downloads

PureBasic
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