Sample code for 30+ languages & platforms
C

Socket Convenience Method: BuildHttpGetRequest

See more Socket/SSL/TLS Examples

Demonstrates the BuildHttpGetRequest method.

Chilkat C Downloads

C
#include <C_CkSocket.h>
#include <C_CkHttpRequest.h>

void ChilkatSample(void)
    {
    HCkSocket socket;
    const char *url;
    const char *reqStr;
    HCkHttpRequest req;

    //  The BuildHttpGetRequest method is a convenience method for building
    //  an HTTP GET request.  Normally, an application would use Chilkat's HTTP or REST API's
    //  for sending HTTP requests.  

    socket = CkSocket_Create();

    url = "http://www.chilkatsoft.com/test.asp?x=123&y=456";
    reqStr = CkSocket_buildHttpGetRequest(socket,url);
    printf("%s\n",reqStr);
    printf("----\n");

    //  The result is:

    //  	GET /test.asp?x=123&y=456 HTTP/1.1
    //  	Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    //  	Connection: keep-alive
    //  	User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0
    //  	Accept-Language: en-us,en;q=0.5
    //  	Host: www.chilkatsoft.com

    //  The result is meant to look like a request from a browser.

    //  The same thing can be done using the Url and HttpRequest classes, but with more flexibility.

    req = CkHttpRequest_Create();
    CkHttpRequest_SetFromUrl(req,url);
    reqStr = CkHttpRequest_generateRequestText(req);
    printf("%s\n",reqStr);
    printf("----\n");

    //  The result is:

    //  	GET /test.asp?x=123&y=456 HTTP/1.1
    //  	Host: domain

    //  Add some headers..
    CkHttpRequest_AddHeader(req,"Host","www.chilkatsoft.com");
    CkHttpRequest_AddHeader(req,"Accept-Language","en-us,en;q=0.5");
    CkHttpRequest_AddHeader(req,"Some-Other-Header","123456");

    reqStr = CkHttpRequest_generateRequestText(req);
    printf("%s\n",reqStr);

    //  The result is now:

    //  	GET /test.asp?x=123&y=456 HTTP/1.1
    //  	Host: www.chilkatsoft.com
    //  	Accept-Language: en-us,en;q=0.5
    //  	Some-Other-Header: 123456


    CkSocket_Dispose(socket);
    CkHttpRequest_Dispose(req);

    }