Customizing GET Headers

As with other request methods, the XHTTPF_REQGETX flag will generate a standard set of headers to accompany the GET request. For example, the URL

"https://www.googleapis.com/drive/v3/files?key=AIzaS9UiXD_1LX,Dn04MzjWR8yQ-Z HTTP/1.1"

 

might auto expand into the following:

GET /drive/v3/files?key=AIzaS9UiXD_1LX,Dn04MzjWR8yQ-Z HTTP/1.1

Host: www.googleapis.com

Content-Type: application/x-www-form-urlencoded

 

But in some cases you need to either change one of the automatic headers or add your own. For example, Google API requests typically require an Authorization header containing your access token, and may require an Accept header to indicate the acceptable response format, e.g.

GET /drive/v3/files?key=AIzaS9UiXD_1LX,Dn04MzjWR8yQ-Z HTTP/1.1

Host: www.googleapis.com

Accept: application/json

Content-Type: application/x-www-form-urlencoded

Authorization: Bearer xcl89SDFweln1890sdfa90s12435...

 

To achieve the desired headers, you can use the same technique described in Customizing POST headers. However, since most GET requests don't require a request body, it is probably more convenient to drop the XHTTPF_FILEREQ and just supply the headers as a string, e.g.

url$ = "https://www.googleapis.com/drive/v3/files?key=" + apikey$ + " HTTP/1.1"

flags = XHTTPF_REQGETX + XHTTPF_HDRBODY + XHTTPF_FILERESP + XHTTPF_SSL

request$ = "Authorization: Bearer " + access'token$ &

    + chr(13) + chr(10) + "Accept: application/json"

xcall HTTP, XHTTPOP_REQ, status, flags, url$, request$, response$

 

Note that you still need the XHTTPF_HDRBODY flag, but no XHTTPF_REQFILE. Just concatenate your desired headers with chr(13)+chr(10) between them.