Me gustaría analizar la respuesta de una solicitud web, pero tengo problemas para acceder a ella como una cadena.
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")
}
¿Cómo puedo acceder a la respuesta como cadena? ioutil.WriteFile
escribe correctamente la respuesta en un archivo.
Ya revisé la referencia del paquete, pero no es realmente útil.
fuente
http.StatusOK
lugar del200
valor bruto !ioutil.ReadAll()
?El método que está utilizando para leer la respuesta del cuerpo http devuelve un segmento de bytes:
documentación oficial
Puede convertir
[]byte
a una cadena usandofuente
string (byteslice) convertirá el segmento de bytes en una cadena, solo sepa que no es solo una conversión de tipo, sino también una copia de memoria.
fuente