PureBasic
PureBasic
HTTP POST x-www-form-urlencoded
Demonstrates how to send a simple x-www-form-urlencoded POST.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkFileAccess.pb"
IncludeFile "CkHttpRequest.pb"
Procedure ChilkatExample()
success.i = 0
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
jsonStr.s = "{ some json ... }"
req.i = CkHttpRequest::ckCreate()
If req.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; This query parameter just happens to be named "json" and contains JSON text.
CkHttpRequest::ckAddParam(req,"json",jsonStr)
; We can optionally add more query parameters.
CkHttpRequest::ckAddParam(req,"abc","123")
CkHttpRequest::ckAddParam(req,"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..
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://example.com/xyz/connect/report",req,resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
If CkHttpResponse::ckStatusCode(resp) <> 200
Debug "Hey, I didn't receive the expected response status code!"
Debug "status code = " + Str(CkHttpResponse::ckStatusCode(resp))
EndIf
; Could be error text if the status code wasn't what we expected, or could be the response
; body you're seeking..
responseBody.s = CkHttpResponse::ckBodyStr(resp)
Debug responseBody
fac.i = CkFileAccess::ckCreate()
If fac.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
filepath.s = "some file path"
success = CkFileAccess::ckWriteEntireTextFile(fac,filepath,responseBody,"utf-8",0)
If success <> 1
Debug CkFileAccess::ckLastErrorText(fac)
EndIf
CkHttp::ckDispose(http)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
CkFileAccess::ckDispose(fac)
ProcedureReturn
EndProcedure