Unicode C
Unicode C
HTTP POST x-www-form-urlencoded
Demonstrates how to send a simple x-www-form-urlencoded POST.Chilkat Unicode C Downloads
#include <C_CkHttpW.h>
#include <C_CkHttpRequestW.h>
#include <C_CkHttpResponseW.h>
#include <C_CkFileAccessW.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttpW http;
const wchar_t *jsonStr;
HCkHttpRequestW req;
HCkHttpResponseW resp;
const wchar_t *responseBody;
HCkFileAccessW fac;
const wchar_t *filepath;
success = FALSE;
http = CkHttpW_Create();
jsonStr = L"{ some json ... }";
req = CkHttpRequestW_Create();
// This query parameter just happens to be named "json" and contains JSON text.
CkHttpRequestW_AddParam(req,L"json",jsonStr);
// We can optionally add more query parameters.
CkHttpRequestW_AddParam(req,L"abc",L"123");
CkHttpRequestW_AddParam(req,L"xml",L"<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..
CkHttpRequestW_putHttpVerb(req,L"POST");
CkHttpRequestW_putContentType(req,L"application/x-www-form-urlencoded");
resp = CkHttpResponseW_Create();
success = CkHttpW_HttpReq(http,L"http://example.com/xyz/connect/report",req,resp);
if (success == FALSE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
CkHttpRequestW_Dispose(req);
CkHttpResponseW_Dispose(resp);
return;
}
if (CkHttpResponseW_getStatusCode(resp) != 200) {
wprintf(L"Hey, I didn't receive the expected response status code!\n");
wprintf(L"status code = %d\n",CkHttpResponseW_getStatusCode(resp));
}
// Could be error text if the status code wasn't what we expected, or could be the response
// body you're seeking..
responseBody = CkHttpResponseW_bodyStr(resp);
wprintf(L"%s\n",responseBody);
fac = CkFileAccessW_Create();
filepath = L"some file path";
success = CkFileAccessW_WriteEntireTextFile(fac,filepath,responseBody,L"utf-8",FALSE);
if (success != TRUE) {
wprintf(L"%s\n",CkFileAccessW_lastErrorText(fac));
}
CkHttpW_Dispose(http);
CkHttpRequestW_Dispose(req);
CkHttpResponseW_Dispose(resp);
CkFileAccessW_Dispose(fac);
}