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 <CkHttpW.h>
#include <CkHttpRequestW.h>
#include <CkHttpResponseW.h>
#include <CkFileAccessW.h>
void ChilkatSample(void)
{
bool success = false;
CkHttpW http;
const wchar_t *jsonStr = L"{ some json ... }";
CkHttpRequestW req;
// This query parameter just happens to be named "json" and contains JSON text.
req.AddParam(L"json",jsonStr);
// We can optionally add more query parameters.
req.AddParam(L"abc",L"123");
req.AddParam(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..
req.put_HttpVerb(L"POST");
req.put_ContentType(L"application/x-www-form-urlencoded");
CkHttpResponseW resp;
success = http.HttpReq(L"http://example.com/xyz/connect/report",req,resp);
if (success == false) {
wprintf(L"%s\n",http.lastErrorText());
return;
}
if (resp.get_StatusCode() != 200) {
wprintf(L"Hey, I didn't receive the expected response status code!\n");
wprintf(L"status code = %d\n",resp.get_StatusCode());
}
// Could be error text if the status code wasn't what we expected, or could be the response
// body you're seeking..
const wchar_t *responseBody = resp.bodyStr();
wprintf(L"%s\n",responseBody);
CkFileAccessW fac;
const wchar_t *filepath = L"some file path";
success = fac.WriteEntireTextFile(filepath,responseBody,L"utf-8",false);
if (success != true) {
wprintf(L"%s\n",fac.lastErrorText());
}
}