Visual FoxPro
Visual FoxPro
Initialize an HTTP Request from a URL
See more HTTP Examples
Demonstrates how to initialize an HTTP request object from a URL.Chilkat Visual FoxPro Downloads
LOCAL loReq
LOCAL i
LOCAL lnNumParams
loReq = CreateObject('Chilkat.HttpRequest')
* Loads the HTTP request object from a URL
loReq.SetFromUrl("https://www.youtube.com/watch?v=fAZdTchQePc&t=45s")
* The verb will be "GET"
? "verb = " + loReq.HttpVerb
* The path will be "/watch"
? "path = " + loReq.Path
* The output of this loop will be
* 0) v: fAZdTchQePc
* 1) t: 45s
lnNumParams = loReq.NumParams
FOR i = 0 TO lnNumParams - 1
? STR(i) + ") " + loReq.GetParamName(i) + ": " + loReq.GetParamValue(i)
NEXT
* View the request that would be sent if HttpSReq is called.
* The HTTP request will be a GET that looks like this:
*
* GET /watch?v=fAZdTchQePc&t=45s HTTP/1.1
* Host: domain
*
* Note: The HOST header will automatically get filled in with the actual domain when HttpSReq is called.
? loReq.GenerateRequestText()
* We can add additional params
loReq.AddParam("artist","Richard Bona")
loReq.AddParam("musicType","Jazz")
loReq.AddParam("festival","Estival Jazz Lugano")
loReq.AddParam("year","2008")
* Now examine the request that would be sent
*
* GET /watch?v=fAZdTchQePc&t=45s&artist=Richard%20Bona&musicType=Jazz&festival=Estival%20Jazz%20Lugano&year=2008 HTTP/1.1
* Host: domain
*
? loReq.GenerateRequestText()
* We can remove a parameter:
loReq.RemoveParam("t")
? loReq.GenerateRequestText()
* What happens if we change the request from a GET to a POST?
loReq.HttpVerb = "POST"
* The request will now look like this:
*
* POST /watch HTTP/1.1
* Host: domain
* Content-Length: 93
*
* v=fAZdTchQePc&artist=Richard%20Bona&musicType=Jazz&festival=Estival%20Jazz%20Lugano&year=2008
*
? loReq.GenerateRequestText()
* What happens if we make it a multipart/form-data?
loReq.ContentType = "multipart/form-data"
* Now the POST looks like this:
*
* POST /watch HTTP/1.1
* Content-Type: multipart/form-data; boundary=------------020906020106050705030807
* Host: domain
* Content-Length: 545
*
* --------------020906020106050705030807
* Content-Disposition: form-data; name="v"
*
* fAZdTchQePc
* --------------020906020106050705030807
* Content-Disposition: form-data; name="artist"
*
* Richard Bona
* --------------020906020106050705030807
* Content-Disposition: form-data; name="musicType"
*
* Jazz
* --------------020906020106050705030807
* Content-Disposition: form-data; name="festival"
*
* Estival Jazz Lugano
* --------------020906020106050705030807
* Content-Disposition: form-data; name="year"
*
* 2008
* --------------020906020106050705030807--
? loReq.GenerateRequestText()
RELEASE loReq