Sample code for 30+ languages & platforms
Go

Enumerate REST Response Header Names

See more REST Examples

Demonstrates Rest.ResponseHdrName, which returns the field name of the response header at a zero-based index. The example enumerates all headers, pairing each name with its value.

Background. Response headers can be enumerated by index from 0 through NumResponseHeaders minus one. ResponseHdrName and ResponseHdrValue use the same index for a given header.

Chilkat Go Downloads

Go
    success := false

    rest := chilkat.NewRest()
    bTls := true
    bAutoReconnect := true
    success = rest.Connect("example.com",443,bTls,bAutoReconnect)
    if success == false {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        return
    }

    success = rest.SendReqNoBody("GET","/api/items/123")
    if success == false {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        return
    }

    statusCode := rest.ReadResponseHeader()
    if statusCode < 0 {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        return
    }

    //  Enumerate the response header fields by zero-based index.  ResponseHdrName returns the field name
    //  and ResponseHdrValue returns the value at the same index.
    numHeaders := rest.NumResponseHeaders()
    var i int
    for i = 0; i <= numHeaders - 1; i++ {
        name := rest.ResponseHdrName(i)
        if rest.LastMethodSuccess() == false {
            fmt.Println(rest.LastErrorText())
            rest.DisposeRest()
            return
        }

        value := rest.ResponseHdrValue(i)
        if rest.LastMethodSuccess() == false {
            fmt.Println(rest.LastErrorText())
            rest.DisposeRest()
            return
        }

        fmt.Println(*name, ": ", *value)
    }


    rest.DisposeRest()