HTTP-Client-Antwort-Header in Go iterieren

English Deutsch

In diesem Beispiel iterieren wir alle HTTP-Header, die der Server nach einer HTTP-Anfrage mit der net/http-Go-Bibliothek zurücksendet.

iterate_headers_snippet.go
for name, headers := range resp.Header {
    // Alle Header mit einem Namen iterieren (z.B. Content-Type)
    for _, hdr := range headers {
        println(name + ": " + hdr)
    }
}

Vollständiges Beispiel:

iterate_headers_example.go
package main

import (
    "net/http"
)

func main() {
    // Anfrage ausführen
    resp, err := http.Get("https://ipv4.techoverflow.net/api/get-my-ip")
    if err != nil {
        print(err)
        return
    }
    // Cleanup, wenn diese Funktion endet
    defer resp.Body.Close()
    // Alle Header lesen
    for name, headers := range resp.Header {
        // Alle Header mit einem Namen iterieren (z.B. Content-Type)
        for _, hdr := range headers {
            println(name + ": " + hdr)
        }
    }
}

Dieses Beispiel gibt z.B. Folgendes aus:

headers_example.txt
Content-Type: application/octet-stream
Content-Type: text/plain charset=UTF-8
Content-Length: 11
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Server: nginx/1.14.0 (Ubuntu)
Date: Sat, 16 Nov 2019 00:27:05 GMT

Check out similar posts by category: Go