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

标签 rest http 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

最佳答案

可以使用任何可以从传入字节流中读取数据的方法来读取正文的响应。其中最简单的是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)
}

关于rest - 如何在 Golang 中处理纯文本 HTTP Get 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38807903/

相关文章:

javascript - Angularjs Provider $get 方法在 config() 处出错

json - 未进行 SSL 连接尝试时,MongoDB 提示 SSL 握手

去 channel 和死锁

rest - 您如何称呼在 REST 资源上为 HTTP 方法完成的操作

asp.net - 具有许多参数的 Web API httpget

PHP curl : Manually setting the content-length header

go - 我如何强制 golang 将文件链接到我的二进制文件中?

sorting - 如何根据结构的 lastName 变量对结构列表进行排序

java - 如何为 ReSTLet 设置根 url

json - 如何从 JSON 中获取特定的数组节点并使用 groovy 逐个打印?