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

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkStringBuilder sbUrl;
    HCkStringBuilder sbValue;
    HCkHttp http;
    const char *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 = CkStringBuilder_Create();
    CkStringBuilder_Append(sbUrl,"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".
    CkStringBuilder_Append(sbUrl,"abc=123&xyz=");

    sbValue = CkStringBuilder_Create();
    CkStringBuilder_Append(sbValue,"this is a test");

    CkStringBuilder_Append(sbUrl,"msg=");
    CkStringBuilder_Append(sbUrl,CkStringBuilder_getEncoded(sbValue,"url","utf-8"));

    // sbUrl contains:  https://www.example.com/something?abc=123&xyz=msg=this%20is%20a%20test
    printf("%s\n",CkStringBuilder_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 = CkHttp_Create();
    responseBody = CkHttp_quickGetStr(http,CkStringBuilder_getAsString(sbUrl));
    if (CkHttp_getLastMethodSuccess(http) == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkStringBuilder_Dispose(sbUrl);
        CkStringBuilder_Dispose(sbValue);
        CkHttp_Dispose(http);
        return;
    }

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


    CkStringBuilder_Dispose(sbUrl);
    CkStringBuilder_Dispose(sbValue);
    CkHttp_Dispose(http);

    }