我如何处理纯文本HTTP在Golang中获取响应? [英] How do I handle plain text HTTP Get response in Golang?

查看:658
本文介绍了我如何处理纯文本HTTP在Golang中获取响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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



我的代码如下所示:

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

responseString:= //不知道如何去掉原文字符串


解决方案

可以使用任何可以从传入字节流读取数据的方法来读取正文的响应。

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



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

  responseString:= string(responseData)

并检查结果

  fmt.Println(responseString)

示例程序

 包主
$ b导入(
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)
$ b $ fmt.Println(responseString)
}
pre>

I am making an HTTP GET request to an endpoint that returns a plain text response.

How do I grab the string of the plain text response?

My code looks like the following:

    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

解决方案

Response of the body can be read using any method that could read data from incoming byte stream. Simplest of them is ReadAll function provided in ioutil package.

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

It will give you API response in []byte. If response is plain text you can easily convert it into string using type conversion:

responseString := string(responseData)

And Check the result

fmt.Println(responseString)

Sample Program:

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)
}

这篇关于我如何处理纯文本HTTP在Golang中获取响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆