Sample code for 30+ languages & platforms
Lianja

HTTP POST x-www-form-urlencoded

Demonstrates how to send a simple x-www-form-urlencoded POST.

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

loHttp = createobject("CkHttp")

lcJsonStr = "{ some json ... }"

loReq = createobject("CkHttpRequest")
// This query parameter just happens to be named "json" and contains JSON text.
loReq.AddParam("json",lcJsonStr)

// We can optionally add more query parameters. 
loReq.AddParam("abc","123")
loReq.AddParam("xml","<abc>123</abc>")

// Note: Just because we passed a query param named "json" or "xml" means nothing special.  It's still just
// a name=value query parameter..

loReq.HttpVerb = "POST"
loReq.ContentType = "application/x-www-form-urlencoded"

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpReq("http://example.com/xyz/connect/report",loReq,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loReq
    release loResp
    return
endif

if (loResp.StatusCode <> 200) then
    ? "Hey, I didn't receive the expected response status code!"
    ? "status code = " + str(loResp.StatusCode)
endif

// Could be error text if the status code wasn't what we expected, or could be the response
// body you're seeking..
lcResponseBody = loResp.BodyStr
? lcResponseBody

loFac = createobject("CkFileAccess")
lcFilepath = "some file path"
llSuccess = loFac.WriteEntireTextFile(lcFilepath,lcResponseBody,"utf-8",.F.)
if (llSuccess <> .T.) then
    ? loFac.LastErrorText
endif



release loHttp
release loReq
release loResp
release loFac