如何从Golang中的HTTP GET请求发送JSON响应?

时间:2017-11-09 23:32:44

标签: json go

我正在学习如何使用Go构建服务器,并想知道如何使用Go的“encoding / json”库在JSON中发送响应。这是我到目前为止的代码:

func HandlePosts (w http.ResponseWriter, r *http.Request) {
    rs, err := http.Get("https://jsonplaceholder.typicode.com/posts")
    if err != nil {
        panic(err)
    }

    defer rs.Body.Close()

    w.Header().Set("Content-Type", "application/json")

    json.NewEncoder(w).Encode(rs.Body)
}

当我在浏览器的控制台中记录此响应时,它只是给我一个空对象。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

你不能编码" http.Repsonse.Body。它是io.ReadCloser,因此您需要阅读它。

在这种情况下,响应已经是json,所以只需将其发送回客户端。

io.Copy(w, rs.Body)