当前位置: 首页 > news >正文

陕西建设网查证件查询seo优化推广专员招聘

陕西建设网查证件查询,seo优化推广专员招聘,流程图制作网站,深圳市市场监督管理局哈喽大家好,我是陈明勇,今天分享的内容是 Go HTTP 调用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出&am…

哈喽大家好,我是陈明勇,今天分享的内容是 Go HTTP 调用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!

前言

无论是微服务还是单体架构等,服务间都有相互通信的时候,而最直接的通信方法就是 HTTP 调用,本文将会介绍在 Go 语言里,如何进行 HTTP 调用,并举例说明。

前置知识

HTTP 调用需要通过 http 包里的 Client 结构体里的 Do 方法去实现,因此需要先声明一个 Client 结构体变量,该结构体可以设置超时时间等配置。
对于一个请求里的 URL,查询参数,请求 method 等参数,需要 http 包里的 Request 结构体去封装。我们可以通过 NewRequestWithContext 或 NewRequest 函数获取一个基础的 Request 结构体指针变量。

NewRequestWithContext(ctx context.Context, method, url string, body io.Reader) (*Request, error)

参数 ctx 为 Context 的接口类型,任意实现 Context 接口的自定义类型都可以作为此参数传递。
参数 method 为 HTTP 方法参数,可选值有 GET、POST、DELETE、PUT等。
参数 url 为接口的请求路径。
参数 body,为请求体参数。

通过 client.Do(req) 方法调用之后,返回值有 (*Response, error),第一个是响应结构体参数,第二个是错误参数。通过读取 Response 的 body 的值,可以获取接口的响应体。

GET 请求

import ("context""fmt""io""net/http"
)func main() {client := http.Client{}request, err := http.NewRequestWithContext(context.Background(), http.MethodGet, "http://localhost:8080/user?name=tom", nil)if err != nil {return}request.Header.Set("headerParam", "header")resp, err := client.Do(request)if err != nil {fmt.Println(err)return}bytes, err := io.ReadAll(resp.Body)if err != nil {return}defer resp.Body.Close()fmt.Println(string(bytes)) // {"code":0,"data":{"list":[{"name":"小明","age":20},{"name":"小红","age":18}]},"message":"success"}
}

需要携带查询参数时,可以直接拼接在 url 字符串上面。
header 参数可以通过 request 结构体的 Header 字段的 set 方法或 add 方法进行设置。
HTTP 请求响应码可以通过 Response 的 StatusCode 字段进行查看。
接口请求成功之后,通过 io.ReadAll 方法,读取 resp.Body 响应体信息。
除了直接在 url 上拼接 query 参数的方式,我们还可以通过以下方式进行添加 query 参数

params := url.Values{}
rawUrl, err := url.Parse("http://localhost:8080/user")
if err != nil {return
}
params.Set("name", "tom")
rawUrl.RawQuery = params.Encode()
u := rawUrl.String()

通过 url.Values 结构体的 set 方法设置 query参数,url 通过 url.Parse 函数生成一个 URL 结构体指针变量,rawUrl.RawQuery = params.Encode() 通过这行代码将 query 参数和 url 进行绑定,最后通过 String() 方法将 url 转换成 string 类型。

小结

本文介绍了在 Go 语言里如何进行 HTTP 调用,需要通过 http 包里的 Client 结构体变量,调用其方法 Do 进行 HTTP 调用,在 HTTP 调用前,需要通过 http 包里的 Request 结构体封装请求路径和请求参数。最后通过 GET 请求案例讲述了 query 参数和 header 参数如何设置,以及响应体的获取方法。

http://www.jinmujx.cn/news/77372.html

相关文章:

  • 网站备案都需要什么百度账号安全中心官网
  • 武汉百度网站排名他达那非片能延时多久
  • 泉州哪里有搭建网站的公司哈尔滨网站优化流程
  • wordpress 物流插件克州seo整站排名
  • 网站地图提交宁波搜索引擎优化seo
  • 简单的静态网站百度免费咨询
  • 店面设计效果图seo站长综合查询
  • 政府门户网站建设的目标厦门人才网唯一官方网站
  • 荆州市做网站的爱站网关键词密度
  • 手机网站怎样做解析seo和sem的区别
  • 今天最新新闻摘抄seo优化检测
  • 做网站界面一般用什么来做google官网入口
  • 什么是网站的备案号泰安百度推广代理
  • 口碑好的做网站公司营销网络建设
  • 手机html网页制作软件兰州seo优化公司
  • 济南网站seo报价整站seo优化公司
  • h5收款平台抖音seo优化排名
  • 做渔船的网站恶意点击推广神器
  • 用wordpress付费网站seo云优化平台
  • 建筑网站资料友情链接有用吗
  • 做网站找个人还是公司互联网营销培训平台
  • 百度收录技术网站seo快速排名优化的软件
  • 陕西网站建设托管深圳网络推广代理
  • 佛山网站建设 合优百度网盘链接
  • 做网站赌博代理一站式发稿平台
  • 珠海做网站设计关键词林俊杰百度云
  • 河南高端网站建设站内推广的方法
  • 北京十大最靠谱it培训机构东莞外贸优化公司
  • 安阳seo公司本溪seo优化
  • dedecms三合一网站源码项目推广平台有哪些