Sample code for 30+ languages & platforms
Unicode C

HTTPS GET URL with URL Encoded Query Params

See more HTTP Examples

Creates a URL with URL encoded query params, and sends an HTTPS GET to the URL.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilderW sbUrl;
    HCkStringBuilderW sbValue;
    HCkHttpW http;
    const wchar_t *responseBody;

    success = FALSE;

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

    // Create a URL with URL-encoded query params.
    sbUrl = CkStringBuilderW_Create();
    CkStringBuilderW_Append(sbUrl,L"https://www.example.com/something?");

    // If we know a query param value does not have any special chars requiring URL encoding,
    // just add it.  In this case, there is no need to URL encode "123" because "123" url encoded is still just "123".
    CkStringBuilderW_Append(sbUrl,L"abc=123&xyz=");

    sbValue = CkStringBuilderW_Create();
    CkStringBuilderW_Append(sbValue,L"this is a test");

    CkStringBuilderW_Append(sbUrl,L"msg=");
    CkStringBuilderW_Append(sbUrl,CkStringBuilderW_getEncoded(sbValue,L"url",L"utf-8"));

    // sbUrl contains:  https://www.example.com/something?abc=123&xyz=msg=this%20is%20a%20test
    wprintf(L"%s\n",CkStringBuilderW_getAsString(sbUrl));

    // Send the GET request and get the response body, which is assumed to be text of some sort (HTML, XML, JSON, etc.)
    // (Chilkat automatically decompresses gzipped responses)
    http = CkHttpW_Create();
    responseBody = CkHttpW_quickGetStr(http,CkStringBuilderW_getAsString(sbUrl));
    if (CkHttpW_getLastMethodSuccess(http) == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        CkStringBuilderW_Dispose(sbUrl);
        CkStringBuilderW_Dispose(sbValue);
        CkHttpW_Dispose(http);
        return;
    }

    wprintf(L"Response Body:\n");
    wprintf(L"%s\n",responseBody);


    CkStringBuilderW_Dispose(sbUrl);
    CkStringBuilderW_Dispose(sbValue);
    CkHttpW_Dispose(http);

    }