Sample code for 30+ languages & platforms
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 C Downloads

C
#include <C_CkStringBuilder.h>
#include <C_CkHttp.h>

void ChilkatSample(void)
    {
    BOOL success;
    const char *nameWindows1252UrlEncoded;
    HCkStringBuilder sb1;
    HCkHttp http;
    HCkStringBuilder sbUrl;
    const char *responseBody;

    success = FALSE;

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

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

    sb1 = CkStringBuilder_Create();
    success = CkStringBuilder_DecodeAndAppend(sb1,nameWindows1252UrlEncoded,"url","windows-1252");

    http = CkHttp_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 = CkStringBuilder_Create();

    CkStringBuilder_Append(sbUrl,"https://www.chilkatsoft.com/something?name=");
    CkStringBuilder_Append(sbUrl,CkStringBuilder_getEncoded(sb1,"url","utf-8"));
    printf("%s\n",CkStringBuilder_getAsString(sbUrl));

    responseBody = CkHttp_quickGetStr(http,CkStringBuilder_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

    CkStringBuilder_Clear(sbUrl);
    CkStringBuilder_Append(sbUrl,"https://www.chilkatsoft.com/something?name=");
    CkStringBuilder_Append(sbUrl,CkStringBuilder_getEncoded(sb1,"url","windows-1252"));
    printf("%s\n",CkStringBuilder_getAsString(sbUrl));

    responseBody = CkHttp_quickGetStr(http,CkStringBuilder_getAsString(sbUrl));


    CkStringBuilder_Dispose(sb1);
    CkHttp_Dispose(http);
    CkStringBuilder_Dispose(sbUrl);

    }