Sample code for 30+ languages & platforms
PureBasic

HTTP POST with some Params in URL and others in application/x-www-form-urlencoded Body

See more HTTP Examples

Demonstrates show to send an HTTP POST with some params in the URL, and others in the application/x-www-form-urlencoded Body

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    ; Imagine a URL that contains two params: one named "xyz" and one named "name".
    ; We want to send a POST to it, but with 2 additional params in the body of the request.
    url.s = "http://www.chilkatsoft.com/echoPost.asp?xyz=123&name=matt"

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

    ; Provide a session log path so we can visually verify the exact request sent.
    ; (This is only for debugging purposes.)
    CkHttp::setCkSessionLogFilename(http, "c:/temp/httpLog.txt")

    ; Create an HTTP request that has two additional params
    req.i = CkHttpRequest::ckCreate()
    If req.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpRequest::setCkHttpVerb(req, "POST")
    CkHttpRequest::setCkPath(req, "/echoPost.asp?xyz=123&name=matt")
    CkHttpRequest::ckAddParam(req,"sport","tennis")
    CkHttpRequest::ckAddParam(req,"tournament","French Open")

    ; Send the HTTP POST and get the response.
    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpSReq(http,"www.chilkatsoft.com",80,0,req,resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpRequest::ckDispose(req)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    Debug CkHttpResponse::ckBodyStr(resp)

    Debug "Success."


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


    ProcedureReturn
EndProcedure