Heim > Backend-Entwicklung > Golang > Wie greife ich in Go auf einen HTTP-Antworttext als String zu?

Wie greife ich in Go auf einen HTTP-Antworttext als String zu?

DDD
Freigeben: 2024-12-08 07:24:16
Original
378 Leute haben es durchsucht

How Do I Access an HTTP Response Body as a String in Go?

Zugriff auf HTTP-Antworten als String in Go

Beim Parsen der Antwort einer Webanfrage kann der Zugriff darauf als String problematisch sein. Betrachten Sie den folgenden Code:

resp, err := http.Get("http://google.hu/")
if err != nil {
    // handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
Nach dem Login kopieren

Während der Code den Antworttext erfolgreich abruft, versuchen Sie, ihn als Zeichenfolge zu durchlaufen, indem Sie for i:= 0; ich < len(körper); i { fmt.Println( body[i] ) } liefert numerische Werte anstelle von Zeichen.

Der Schlüssel zum Zugriff auf die Antwort als String liegt in einer einfachen Konvertierung:

bs := string(body)
Nach dem Login kopieren

Dies Bei der Konvertierung wird der Byte-Slice-Körper als Folge von Unicode-Codepunkten behandelt und eine entsprechende Zeichenfolge erstellt. Nach der Konvertierung können Sie bs wie jede andere Zeichenfolge bearbeiten.

Der folgende Code zeigt beispielsweise die Konvertierung und die anschließende Zeichenfolgenmanipulation:

var client http.Client
resp, err := client.Get(url)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

if resp.StatusCode == http.StatusOK {
    bodyBytes, err := io.ReadAll(resp.Body)
    if err != nil {
        log.Fatal(err)
    }
    bodyString := string(bodyBytes)
    fmt.Println(bodyString)
}
Nach dem Login kopieren

Diese Konvertierung hebt den Unterschied zwischen Bytes und Zeichenfolgen hervor in Go. Strings sind unveränderliche Folgen von Unicode-Codepunkten, während Byte-Slices veränderliche Folgen von Rohbytes sind. Durch die Konvertierung von einem Byte-Slice in eine Zeichenfolge wird effektiv eine neue Zeichenfolge erstellt, die die durch die Bytes codierte Zeichenfolge darstellt.

Das obige ist der detaillierte Inhalt vonWie greife ich in Go auf einen HTTP-Antworttext als String zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage