Sample code for 30+ languages & platforms
PureBasic

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