Sample code for 30+ languages & platforms
Unicode C

HTTP GET with utf-8 URL Encoded Query Params

See more HTTP Examples

Demonstrates how to build URLs where query param values can be either URL encoded from the utf-8 representation, or from another charset such as windows-1252.

Note: This example uses the new DecodeAndAppend method added in Chilkat v9.5.0.87.

Chilkat Unicode C Downloads

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

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

    success = FALSE;

    // We have the string "MÆRSK".

    // This is the URL encoding of the windows-1252 representation.
    nameWindows1252UrlEncoded = L"M%C6RSK";

    sb1 = CkStringBuilderW_Create();
    success = CkStringBuilderW_DecodeAndAppend(sb1,nameWindows1252UrlEncoded,L"url",L"windows-1252");

    http = CkHttpW_Create();

    // Here's how to send an HTTP GET where the param is the utf-8 representation that is URL encoded.
    // For example:  https://www.chilkatsoft.com/something?name=M%C3%A6RSK

    sbUrl = CkStringBuilderW_Create();

    CkStringBuilderW_Append(sbUrl,L"https://www.chilkatsoft.com/something?name=");
    CkStringBuilderW_Append(sbUrl,CkStringBuilderW_getEncoded(sb1,L"url",L"utf-8"));
    wprintf(L"%s\n",CkStringBuilderW_getAsString(sbUrl));

    responseBody = CkHttpW_quickGetStr(http,CkStringBuilderW_getAsString(sbUrl));

    // Here's how to send an HTTP GET where the param is the windows-1252 representation that is URL encoded.
    // For example:  https://www.chilkatsoft.com/something?name=M%E6RSK

    CkStringBuilderW_Clear(sbUrl);
    CkStringBuilderW_Append(sbUrl,L"https://www.chilkatsoft.com/something?name=");
    CkStringBuilderW_Append(sbUrl,CkStringBuilderW_getEncoded(sb1,L"url",L"windows-1252"));
    wprintf(L"%s\n",CkStringBuilderW_getAsString(sbUrl));

    responseBody = CkHttpW_quickGetStr(http,CkStringBuilderW_getAsString(sbUrl));


    CkStringBuilderW_Dispose(sb1);
    CkHttpW_Dispose(http);
    CkStringBuilderW_Dispose(sbUrl);

    }