Golang Code

Convert io.ReadCloser to a String

· 104 words · 1 minute read #buffer #bytes #closer #get #io #read #string #readcloser #convert

Net/http is an amazing package but there are times you need to work with the body text of the response returned from the call you just made. Many functions require a string as input so we have to convert it first by passing it through a buffer.

package main

import (
    "fmt"
    "net/http"
    "bytes"
)

func main() {
    response, _ := http.Get("https://golangcode.com/")

    // The line below would fail because Body = io.ReadCloser
    // fmt.Printf(response.Body)

    // ...so we convert it to a string by passing it through 
    // a buffer first. A 'costly' but useful process.
    buf := new(bytes.Buffer)
    buf.ReadFrom(response.Body)
    newStr := buf.String()

    fmt.Printf(newStr)
}
Image of Author Edd Turtle

Author: Edd Turtle

Edd is the Lead Developer at Hoowla, a prop-tech startup, where he spends much of his time working on production-ready Go and PHP code.

See something which isn't right? You can contribute to this page on GitHub or just let us know in the comments below. Thanks for reading!