当前位置: 首页 > 工具软件 > gohttp > 使用案例 >

GO通过HTTP获取API的返回值(response)

严阳秋
2023-12-01

net/http

import "net/http"

Go语言提供了HTTP客户端和服务端的实现,也就是net/http包
我们可以通过包中的GetHeadPostPostForm函数发出HTTP/HTTPS请求

package main

import (
	"fmt"
    "io/ioutil"
    "net/http"
)
func main{
	response, err := http.Get("https://www.baidu.com")
	if err != nil{
		//...
	} 
	defer response.Body.Close()//在回复后必须关闭回复的主体
	body,err := ioutil.ReadAll(response.body)
	if err == nil{
		fmt.Println(string(body))
	}
}

这样即可获取https://www.baidu.com返回的结果,当然,在经过string(body)处理后,我们获取到的数据格式为string,我们需要将它转换为**map[string]interface{}**格式

func Transformation(response *http.Response)  		map[string]interface{}{
	var result map[string]interface{}
	body, err := ioutil.ReadAll(response.Body)
	if err == nil {
		json.Unmarshal([]byte(string(body)), &result)
	}
	return result
}

这样即可转换为**map[string]interface{}**格式,方便我们取值和使用

net/url

如果URL参数中有汉字,那么我们需要将汉字转换,这里使用net/url包进行转换,具体使用方法见代码:

import (
	"net/url"
)

func StrTransformation(str1 string) string {
	str2 := url.QueryEscape(str1)
	return str2
}
 类似资料: