Sample code for 30+ languages & platforms
PureBasic

HTTP POST (Duplicate Simple HTML Form POST)

Demonstrates how to duplicate a simple HTML form POST.

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.

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

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

    ; This example simulates this FORM:
    ; <form action="echoPost.asp" method="post">
    ; First name: <input type="text" name="firstName"><br />
    ; Last name: <input type="text" name="lastName"><br />
    ; <input type="submit" value="Submit">
    ; </form>
    ; The online FORM is found at this URL:
    ; https://www.chilkatsoft.com/simpleForm.html

    ; Build an HTTP POST Request:
    CkHttpRequest::setCkHttpVerb(req, "POST")

    ; The FORM target is http://www.chilkatsoft.com/processPost.asp
    ; An easy way of filling out most of the HTTP request object
    ; is to call SetFromUrl:
    CkHttpRequest::ckSetFromUrl(req,"https://www.chilkatsoft.com/echoPost.asp")

    ; Send form params using application/x-www-form-urlencoded
    CkHttpRequest::setCkContentType(req, "application/x-www-form-urlencoded")

    ; The only remaining task is to add the params to the 
    ; HTTP request object:
    CkHttpRequest::ckAddParam(req,"firstName","Matt")
    CkHttpRequest::ckAddParam(req,"lastName","Jones")

    ; Send the HTTP POST and get the response.
    ; The POST is being sent to chilkatsoft.com, on port 443 (using TLS)
    domain.s = "chilkatsoft.com"
    port.i = 443
    tls.i = 1

    ; The HTTP POST is sent here:
    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpSReq(http,domain,port,tls,req,resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttpRequest::ckDispose(req)
        CkHttp::ckDispose(http)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    ; Display the HTML source of the page returned.
    Debug CkHttpResponse::ckBodyStr(resp)


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


    ProcedureReturn
EndProcedure