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

商城网站 搭建seo网站推广优化

商城网站 搭建,seo网站推广优化,网站建设具备什么条件,b2b网站建设开发前言 无论是微服务还是单体架构等,服务间都有相互通信的时候,而最直接的通信方法就是 HTTP 调用,本文将会介绍在 Go 语言里,如何进行 HTTP 调用,并举例说明。 前置知识 HTTP 调用需要通过 http 包里的 Client 结构体里…

前言
无论是微服务还是单体架构等,服务间都有相互通信的时候,而最直接的通信方法就是 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.dtcms.com/wzjs/1948.html

相关文章:

  • 12306网站多少钱做的万网是什么网站
  • 四川营销型网站今日小说排行榜
  • 建设项目竣工环保验收公示网站网络营销方式有几种
  • 网站优化18600119496软件网站关键词优化
  • 防城港做网站seo与sem的区别与联系
  • 用微信做网站互联网宣传方式有哪些
  • webstation做网站seo外贸推广
  • discuz wordpress 选择沈阳网络优化培训
  • 国外域名网站推荐东莞seo排名优化
  • 用服务器做网站关键词排名查询
  • 天河网站设计如何在网络上推广产品
  • 做网站成品移投界seo
  • 网站排名套餐蚂蚁链接bt链接
  • 制作旅游网站网页的代码百度指数下载app
  • 全国工程建设信息平台宁波网站推广优化外包
  • 程序员是不是都是做网站的做百度推广多少钱
  • 网站换服务器要怎么做百度投诉中心24人工
  • 怎么做网站用于推广怎样上百度做广告
  • 开发app怎么盈利seo网站推广专员
  • 郑州网站设计培训百度新闻头条新闻
  • 网站假设公司排名网络营销项目策划
  • 双鸭山网站开发设计网站
  • 做教师知识网站有哪些内容谷歌seo怎么优化
  • jsp简述网站开发流程图爱站网关键词长尾挖掘
  • 毕业设计做网站选题国家域名注册服务网
  • wordpress禁止缩略图百度点击优化
  • 上海市城乡建设和管理委员会网站怎样推广公司的网站
  • 国内房地产设计网站建设重庆发布的最新消息今天
  • 高品质的网站开发公电商运营一天都干啥
  • 建网站找那家企业好互联网营销工具