Zugriff auf HTTP-Antwort als string in Gehen
Möchte ich Parsen der Antwort eines web-Anfrage, aber ich bin immer Probleme beim Zugriff auf als string.
func main() {
resp, err := http.Get("http://google.hu/")
if err != nil {
//handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
ioutil.WriteFile("dump", body, 0600)
for i:= 0; i < len(body); i++ {
fmt.Println( body[i] ) //This logs uint8 and prints numbers
}
fmt.Println( reflect.TypeOf(body) )
fmt.Println("done")
}
Wie kann ich auf die Antwort als string? ioutil.WriteFile
schreibt richtig, die Reaktion auf eine Datei.
Hab ich schon überprüft der Paket-Hinweis, aber es ist nicht wirklich hilfreich.
InformationsquelleAutor der Frage Tibor Szasz | 2016-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
bs := string(body)
sollte genug, um Ihnen einen string.Von dort aus können Sie es als ein regulärer Ausdruck.
Etwas wie in diesem thread:
Siehe auch GoByExample.
Als unten kommentiert (und in zzn's Antwort), dies ist ein Konvertierung (siehe Spezifikation).
Siehe "Wie teuer ist
[]byte(string)
?" (umgekehrte problem, aber die gleiche Schlussfolgerung gilt), wo zzzz erwähnt:Sonia fügt hinzu:
InformationsquelleAutor der Antwort VonC
Die Methode, die Sie verwenden, um Lesen Sie den http-body Antwort gibt ein byte-slice:
offizielle Dokumentation
Können Sie konvertieren
[]byte
einen string mitInformationsquelleAutor der Antwort tsabsch
string(byteslice) konvertiert byte-slice, string, weiß nur, dass es nicht einfach nur Typ-Konvertierung, sondern auch Speicher kopieren.
InformationsquelleAutor der Antwort zzn