Accessing HTTP Response as a String in Go
When retrieving web requests in Go, accessing the response as a string can sometimes be challenging. Despite your best efforts, accessing the response as a string might prove difficult. This article explores a common issue: obtaining the response body as a string, and provides a solution using the string() function.
A common approach to retrieving the response body is demonstrated in the code snippet you provided. However, accessing the response as a string directly from resp.Body using a simple loop like for i:= 0; i < len(body); i { fmt.Println( body[i] ) } will print numbers representing ASCII values rather than the desired string.
To convert the response body into a string, you can use the string() function as follows:
bs := string(body)
This line will convert the byte array body into a string, which you can then use as a regular string. The variable bs now holds the response body as a string, allowing you to perform string operations on it.
For further illustration, here's a modified version of your code snippet that uses string() to obtain the response body as a 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) bs := string(body) // Converts the response body into a string fmt.Println(bs) // Log the string representation of the response body fmt.Println("done") }
In this updated code, the variable bs contains the response body as a string, which is then logged using fmt.Println(bs). Running this modified code will print the string representation of the HTTP response.
The above is the detailed content of How Can I Easily Convert an HTTP Response Body to a String in Go?. For more information, please follow other related articles on the PHP Chinese website!