HttpHeader$ ( request,name$ )

Parameters

request - a request from HttpRequest

name$ - the header's name, in any case, such as "Content-Type"

Description

Returns one of the headers of a request's answer, or "" when it has none.

Headers are what the server says about its answer: Content-Type says what kind of text or file it is, Last-Modified when it last changed, and some web services say how many more requests you may make. After a redirect, they are the final answer's headers.

On the web, the browser shows a page only the headers that its server lets other sites read: Content-Type, Content-Length, Last-Modified and a few more, as well as any the server lists in its Access-Control-Expose-Headers header.


See also: HttpRequest, HttpText, HttpStatus.

Example

; HttpRequest Example
; -------------------

Graphics 640,480,0,2
SetBuffer BackBuffer()

; The Khronos Group's list of glTF sample models: a JSON file on GitHub
url$="https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/model-index.json"

; Start the request: HttpRequest returns at once, and the answer
; arrives while the program carries on
request=HttpRequest(url)

; The first 20 model names, once the answer is in
Dim names$(19)
count=0
unread=True

While Not KeyDown(1)

    ; Space asks again
    If KeyHit(57) Then
        FreeHttpRequest request
        request=HttpRequest(url)
        unread=True
        count=0
    EndIf

    ; HttpStatus is 0 while the request runs, then the HTTP status
    status=HttpStatus(request)
    If status=200 And unread Then
        ; The answer is text: here, a JSON array of models
        index=ParseJson(HttpText(request))
        If index Then
            count=JsonCount(index)
            For i=0 To 19
                If i<count Then
                    model=JsonArrayGet(index,i)
                    label=JsonObjectGet(model,"label")
                    names(i)=JsonText(label)
                    FreeJson label
                    FreeJson model
                EndIf
            Next
            FreeJson index
        EndIf
        unread=False
    EndIf

    Cls
    Text 0,0,"Space: ask again   Esc: exit"
    If status=0 Then
        Text 0,20,"Asking GitHub for the glTF sample models..."
    ElseIf status<0 Then
        ; Below 0, the request ended without an answer
        Text 0,20,"No answer: "+HttpError(request)
    Else
        Text 0,20,"HttpStatus: "+status+"   Content-Type: "+HttpHeader(request,"Content-Type")
        Text 0,40,count+" models; the first 20:"
        For i=0 To 19
            Text 20,70+i*20,names(i)
        Next
    EndIf

    ; Waiting a frame lets the answer arrive, on the web too
    Flip

Wend

FreeHttpRequest request
End

Index