Sample code for 30+ languages & platforms
PureBasic

HTTP POST x-www-form-urlencoded

Demonstrates how to send a simple URL encoded POST (content-type = x-www-form-urlencoded). Form params are passed in the HTTP request body in x-www-form-urlencoded format.

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.

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

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

    ; Add the request params expected by the server-side:
    CkHttpRequest::ckAddParam(req,"city","Paris")
    CkHttpRequest::ckAddParam(req,"country","France")

    ; Send the POST
    CkHttpRequest::setCkHttpVerb(req, "POST")
    CkHttpRequest::setCkContentType(req, "application/x-www-form-urlencoded")

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

    success = CkHttp::ckHttpReq(http,"http://www.chilkatsoft.com/httpTest/cityCountry.asp",req,resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkHttpRequest::ckDispose(req)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    ; The exact HTTP request sent and response received
    ; by the example code above is as follows:

    ; 
    ; ---- Sending ----
    ; POST /httpTest/cityCountry.asp HTTP/1.1
    ; Host: www.chilkatsoft.com
    ; Content-Type: application/x-www-form-urlencoded
    ; Content-Length: 25
    ; 
    ; city=Paris&country=France
    ; ---- Received ----
    ; HTTP/1.1 200 OK
    ; Date: Wed, 09 Dec 2009 16:16:00 GMT
    ; Server: Microsoft-IIS/6.0
    ; X-Powered-By: ASP.NET
    ; Content-Length: 156
    ; Content-Type: text/html
    ; Set-Cookie: ASPSESSIONIDQCDTSSAC=MHJCNFMDENFOKGINOFEDILCM; path=/
    ; Cache-control: private
    ; 
    ; 
    ; <html>
    ; <head>
    ; <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    ; </head>
    ; <body>
    ; 
    ; France<br />Paris<br />
    ; 
    ; </body>
    ; </html>


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


    ProcedureReturn
EndProcedure