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

Transition from Http.PostUrlEncoded to Http.HttpReq

Provides instructions for replacing deprecated PostUrlEncoded method calls with HttpReq.

Sends the following raw HTTP request:

POST /echoPost.asp HTTP/1.1
Host: www.chilkatsoft.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 50

company=example&ip=111.111.111.111&url=example.com

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkHttpRequest.pb"

Procedure ChilkatExample()

    success.i = 0

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    url.s = "https://www.chilkatsoft.com/echoPost.asp"

    req.i = CkHttpRequest::ckCreate()
    If req.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpRequest::ckAddParam(req,"company","example")
    CkHttpRequest::ckAddParam(req,"ip","111.111.111.111")
    CkHttpRequest::ckAddParam(req,"url","example.com")

    ;  ------------------------------------------------------------------------
    ;  The PostUrlEncoded method is deprecated:

    responseObj.i = CkHttp::ckPostUrlEncoded(http,url,req)
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpRequest::ckDispose(req)
        ProcedureReturn
    EndIf

    ;  ...
    ;  ...

    CkHttpResponse::ckDispose(responseObj)

    ;  ------------------------------------------------------------------------
    ;  Do the equivalent using HttpReq.
    ;  Your application creates a new, empty HttpResponse object which is passed 
    ;  in the last argument and filled upon success.

    req2.i = CkHttpRequest::ckCreate()
    If req2.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpRequest::ckAddParam(req2,"company","example")
    CkHttpRequest::ckAddParam(req2,"ip","111.111.111.111")
    CkHttpRequest::ckAddParam(req2,"url","example.com")

    CkHttpRequest::setCkHttpVerb(req2, "POST")
    CkHttpRequest::setCkContentType(req2, "application/x-www-form-urlencoded")

    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpReq(http,url,req2,resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpRequest::ckDispose(req)
        CkHttpRequest::ckDispose(req2)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    ;  Results are contained in the HTTP response object...


    CkHttp::ckDispose(http)
    CkHttpRequest::ckDispose(req)
    CkHttpRequest::ckDispose(req2)
    CkHttpResponse::ckDispose(resp)


    ProcedureReturn
EndProcedure