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

建设网站常见问题长春seo技术

建设网站常见问题,长春seo技术,网站设计计划,域名网站如何做市场推广前言 无论是微服务还是单体架构等,服务间都有相互通信的时候,而最直接的通信方法就是 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/281766.html

相关文章:

  • 网站建设工作室+怎么样凡科建站官网免费注册
  • 网上服装商城网站建设方案策划武汉seo收费
  • 求职找工作爱站网seo工具包
  • 东莞网站建设选高科技台州关键词首页优化
  • 交互做的好的中国网站东莞疫情最新消息今天
  • 合肥 中网站什么平台可以打广告做宣传
  • 网站建设与管理专业实训室军事新闻俄乌最新消息
  • 做嫒嫒网站百度一下百度官方网
  • aspx网站架设教程seo推广外包
  • 外贸行业网络推广怎么理解搜索引擎优化
  • 星巴克vi设计分析滨州seo排名
  • 深圳快速网站制作哪家快优化seo培训班
  • 乐山做美食推荐的网站网店营销与推广策划方案
  • 我现在有域名怎么做网站百度帐号注册
  • 北京快速建站模板品牌营销包括哪些内容
  • 做网站的公司都有哪些网络营销策划的概念
  • 营销推广平台都干什么的如何做seo整站优化
  • 国外品牌设计网站百度快照网址
  • 网站建设步骤大全互站网
  • 如何快速网站备案seo智能优化
  • 百中搜如何做网站排名百度收录时间
  • 广州海珠做网站网推项目接单平台
  • wordpress修改网页端口拼多多标题关键词优化方法
  • 上海平台网站建设报中国建设网官方网站
  • 微网站建设市场地推拉新app推广怎么做
  • 龙岩网站制作广州今日头条新闻最新
  • 做网站服务器什么是seo
  • 淘宝购物专业放心关键词优化参考价格
  • 政府部门网站建设要求seo建站技巧
  • 在线设计广告如何优化网站