Sample code for 30+ languages & platforms
PureBasic

Socket Convenience Method: BuildHttpGetRequest

See more Socket/SSL/TLS Examples

Demonstrates the BuildHttpGetRequest method.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpRequest.pb"
IncludeFile "CkSocket.pb"

Procedure ChilkatExample()

    ; 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.i = CkSocket::ckCreate()
    If socket.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    url.s = "http://www.chilkatsoft.com/test.asp?x=123&y=456"
    reqStr.s = CkSocket::ckBuildHttpGetRequest(socket,url)
    Debug reqStr
    Debug "----"

    ; 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.i = CkHttpRequest::ckCreate()
    If req.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkHttpRequest::ckSetFromUrl(req,url)
    reqStr = CkHttpRequest::ckGenerateRequestText(req)
    Debug reqStr
    Debug "----"

    ; The result is:

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

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

    reqStr = CkHttpRequest::ckGenerateRequestText(req)
    Debug 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::ckDispose(socket)
    CkHttpRequest::ckDispose(req)


    ProcedureReturn
EndProcedure