Sample code for 30+ languages & platforms
Unicode C

HTTP POST with Binary Data in Request Body

See more HTTP Examples

Do an HTTPS POST with a binary request body.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkHttpW.h>
#include <C_CkFileAccessW.h>
#include <C_CkByteData.h>
#include <C_CkHttpResponseW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttpW http;
    HCkFileAccessW fac;
    HCkByteData reqBody;
    HCkHttpResponseW resp;
    int responseStatusCode;

    success = FALSE;

    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    http = CkHttpW_Create();

    fac = CkFileAccessW_Create();

    reqBody = CkByteData_Create();
    success = CkFileAccessW_ReadEntireFile(fac,L"qa_data/pdf/helloWorld.pdf",reqBody);

    resp = CkHttpResponseW_Create();
    success = CkHttpW_HttpBinary(http,L"POST",L"https://example.com/something",reqBody,L"application/pdf",resp);
    if (success == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        CkHttpW_Dispose(http);
        CkFileAccessW_Dispose(fac);
        CkByteData_Dispose(reqBody);
        CkHttpResponseW_Dispose(resp);
        return;
    }

    responseStatusCode = CkHttpResponseW_getStatusCode(resp);
    wprintf(L"Status code: %d\n",responseStatusCode);

    //  For example, if the response is XML, JSON, HTML, etc.
    wprintf(L"response body:\n");
    wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp));


    CkHttpW_Dispose(http);
    CkFileAccessW_Dispose(fac);
    CkByteData_Dispose(reqBody);
    CkHttpResponseW_Dispose(resp);

    }