C
C
HTTP POST x-www-form-urlencoded
Demonstrates how to send a simple x-www-form-urlencoded POST.Chilkat C Downloads
#include <C_CkHttp.h>
#include <C_CkHttpRequest.h>
#include <C_CkHttpResponse.h>
#include <C_CkFileAccess.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttp http;
const char *jsonStr;
HCkHttpRequest req;
HCkHttpResponse resp;
const char *responseBody;
HCkFileAccess fac;
const char *filepath;
success = FALSE;
http = CkHttp_Create();
jsonStr = "{ some json ... }";
req = CkHttpRequest_Create();
// This query parameter just happens to be named "json" and contains JSON text.
CkHttpRequest_AddParam(req,"json",jsonStr);
// We can optionally add more query parameters.
CkHttpRequest_AddParam(req,"abc","123");
CkHttpRequest_AddParam(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_putHttpVerb(req,"POST");
CkHttpRequest_putContentType(req,"application/x-www-form-urlencoded");
resp = CkHttpResponse_Create();
success = CkHttp_HttpReq(http,"http://example.com/xyz/connect/report",req,resp);
if (success == FALSE) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkHttpResponse_Dispose(resp);
return;
}
if (CkHttpResponse_getStatusCode(resp) != 200) {
printf("Hey, I didn't receive the expected response status code!\n");
printf("status code = %d\n",CkHttpResponse_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 = CkHttpResponse_bodyStr(resp);
printf("%s\n",responseBody);
fac = CkFileAccess_Create();
filepath = "some file path";
success = CkFileAccess_WriteEntireTextFile(fac,filepath,responseBody,"utf-8",FALSE);
if (success != TRUE) {
printf("%s\n",CkFileAccess_lastErrorText(fac));
}
CkHttp_Dispose(http);
CkHttpRequest_Dispose(req);
CkHttpResponse_Dispose(resp);
CkFileAccess_Dispose(fac);
}