Sample code for 30+ languages & platforms
Unicode C

HTTP Methods - GET and DELETE

Demonstrate a method for sending HTTP requests that don't have a request body, such as for GET or DELETE requests.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttpW http;
    const wchar_t *url;
    HCkHttpResponseW resp;
    int statusCode;

    success = FALSE;

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

    http = CkHttpW_Create();

    //  Specifiy a session log file so we can see the exact request/response
    CkHttpW_putSessionLogFilename(http,L"c:/aaworkarea/sessionLog.txt");

    //  Perhaps add a custom header or two..
    CkHttpW_SetRequestHeader(http,L"x-exz-date",L"20201012T235046Z");
    CkHttpW_SetRequestHeader(http,L"x-exz-id",L"1234");

    //  Send a GET request to https://www.example.com/someting?param1=123&param2=abc
    url = L"https://www.example.com/someting?param1=123&param2=abc";
    resp = CkHttpResponseW_Create();
    success = CkHttpW_HttpNoBody(http,L"GET",url,resp);
    if (success == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        CkHttpW_Dispose(http);
        CkHttpResponseW_Dispose(resp);
        return;
    }

    //  The GET request that is sent looks like this.
    //  The Accept and Accept-Encoding headers are automatically added by default.

    //  	GET /someting?param1=123&param2=abc HTTP/1.1
    //  	Host: www.example.com
    //  	Accept: */*
    //  	Accept-Encoding: gzip
    //  	x-exz-date: 20201012T235046Z
    //  	x-exz-id: 1234

    //  Get the response status
    statusCode = CkHttpResponseW_getStatusCode(resp);
    wprintf(L"Response status: %d\n",statusCode);

    //  Get the response body
    wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp));

    //  -------------------------------------------------------------
    //  Let's say we want to send a DELETE request, and we only want to accept an application/json response,
    //  and we don't want gzipped responses...

    //  First remove the previously specified custom headers.
    CkHttpW_ClearHeaders(http);

    //  Indicate we only accept application/json non-gzipped responses.
    CkHttpW_putAccept(http,L"application/json");
    CkHttpW_putAllowGzip(http,FALSE);

    //  Send a DELETE request to https://www.example.com/deleteSomething
    url = L"https://www.example.com/deleteSomething";
    success = CkHttpW_HttpNoBody(http,L"DELETE",url,resp);
    if (success == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        CkHttpW_Dispose(http);
        CkHttpResponseW_Dispose(resp);
        return;
    }

    //  The DELETE request that is sent looks like this.
    //  The empty Accept-Encoding header value means we only want non-compressed responses.

    //  	DELETE /deleteSomething HTTP/1.1
    //  	Host: www.example.com
    //  	Accept: application/json
    //  	Accept-Encoding: 

    //  Get the response status
    statusCode = CkHttpResponseW_getStatusCode(resp);
    wprintf(L"Response status: %d\n",statusCode);

    //  Get the response body
    wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp));


    CkHttpW_Dispose(http);
    CkHttpResponseW_Dispose(resp);

    }