Convert io.ReadCloser to a String

· 104 words · 1 minute read

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 (

func main() {
    response, _ := http.Get("")

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

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

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!