Reaktion des Körpers jede Methode gelesen werden können, unter Verwendung von Daten, die aus den eingehenden Bytestrom lesen konnte. Am einfachsten ist die ReadAll-Funktion, die im ioutil-Paket enthalten ist.
responseData,err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
Es gibt Ihnen API-Antwort in [] Byte. Wenn Antwort Klartext ist, können Sie diese leicht in Zeichenfolge konvertieren Typ Konvertierung mit:
responseString := string(responseData)
und prüfen Sie das Ergebnis
fmt.Println(responseString)
Beispielprogramm:
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
url := "http://country.io/capital.json"
response, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
responseData, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
responseString := string(responseData)
fmt.Println(responseString)
}
Wenn Sie eine Webseite mit (für z) Spanisch/Italienisch/etc bekommen. Zeichen, erhalten Sie kein gutes Ergebnis bei der Umwandlung von '[] Byte in' String'. Genau, Zeichen wie "é", "á" usw. erhalten Sie Zeichen. Sie müssen die 'responseData' durchlaufen und jedes Zeichen zusammenführen. Ein optimierter Weg wäre [this] (https://play.golang.org/p/IPKmytFOEd) ;-) –
@Amds Antwort löst das Problem des Unicode-Textes auf die gleiche Weise wie mein vorheriger Kommentar, allerdings denke ich besser ;-) –