Sample code for 30+ languages & platforms
C

HTTP POST with Binary Data in Request Body

See more HTTP Examples

Do an HTTPS POST with a binary request body.

Chilkat C Downloads

C
#include <C_CkHttp.h>
#include <C_CkFileAccess.h>
#include <C_CkByteData.h>
#include <C_CkHttpResponse.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttp http;
    HCkFileAccess fac;
    HCkByteData reqBody;
    HCkHttpResponse resp;
    int responseStatusCode;

    success = FALSE;

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

    http = CkHttp_Create();

    fac = CkFileAccess_Create();

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

    resp = CkHttpResponse_Create();
    success = CkHttp_HttpBinary(http,"POST","https://example.com/something",reqBody,"application/pdf",resp);
    if (success == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        CkFileAccess_Dispose(fac);
        CkByteData_Dispose(reqBody);
        CkHttpResponse_Dispose(resp);
        return;
    }

    responseStatusCode = CkHttpResponse_getStatusCode(resp);
    printf("Status code: %d\n",responseStatusCode);

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


    CkHttp_Dispose(http);
    CkFileAccess_Dispose(fac);
    CkByteData_Dispose(reqBody);
    CkHttpResponse_Dispose(resp);

    }