一尘不染

如何在Golang中处理纯文本HTTP Get响应?

go

我正在向返回纯文本响应的端点发出HTTP GET请求。

如何获取纯文本响应的字符串?

我的代码如下所示:

    url := "http://someurl.com"
    response,err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    defer response.Body.Close()

    responseString := //NOT SURE HOW TO GRAB THE PLAIN TEXT STRING

阅读 550

收藏
2020-07-02

共1个答案

一尘不染

可以使用可以从传入字节流中读取数据的任何方法来读取主体的响应。其中最简单的是ioutil软件包中提供的ReadAll函数。

responseData,err := ioutil.ReadAll(response.Body)
if err != nil {
    log.Fatal(err)
}

它将以[] byte为单位给您API响应。如果响应是纯文本,则可以使用类型转换将其轻松转换为字符串:

responseString := string(responseData)

并检查结果

fmt.Println(responseString)

示例程序:

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)
}
2020-07-02