Reakcja organizmu można odczytać za pomocą jakiejkolwiek metody, które mogą odczytywać dane z przychodzącego strumienia bajtów. Najprostszym z nich jest funkcja ReadAll zawarta w pakiecie ioutil.
responseData,err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
Zapewni to odpowiedź API w bajcie []. Jeśli odpowiedź jest zwykły tekst można łatwo przekonwertować go na ciąg przy użyciu typu konwersji:
responseString := string(responseData)
i sprawdzić wyniki
fmt.Println(responseString)
Przykładowy program:
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)
}
Jeśli masz stronę internetową z (np.) Hiszpańskim/włoskim/etc. znaków, nie uzyskasz dobrego wyniku konwersji 'bajtu' na' ciąg'. Dokładnie, takie postacie jak 'é',' á', itp. Dostaniesz postać. Potrzebujesz iteracji 'responseData' i konkatowania każdej postaci. Zoptymalizowanym sposobem byłoby [to] (https://play.golang.org/p/IPKmytFOEd) ;-) –
Odpowiedź @Amd rozwiązuje problem tekstu Unicode w ten sam sposób co poprzedni komentarz, jednak myślę, że lepiej ;-) –