【二、http】go的http基本请求设置(设置查询参数、定制请求头)get和post类似

一、设置url后边的参数,(get和post请求为例子)

cpp 复制代码
func requstByParamsGet(){
	requst, err := http.NewRequest(http.MethodGet, "http://httpbin.org/get", nil)
	if err != nil {
		fmt.Println("ss")
	}

	params := make(url.Values)
	params.Add("name", "kaiyue")
	params.Add("age", "18")

	//encode之后会生成如下,name=kaiyue&age=18
	requst.URL.RawQuery = params.Encode()
	r, err := http.DefaultClient.Do(requst)
	if err != nil {
		fmt.Println("ss")
	}
	defer r.Body.Close()
	printBody(r)
}

func requstByParamsPost(){
	requst, err := http.NewRequest(http.MethodPost, "http://httpbin.org/post", nil)
	if err != nil {
		fmt.Println("ss")
	}

	params := make(url.Values)
	params.Add("name", "kaiyue")
	params.Add("age", "18")

	//encode之后会生成如下,name=kaiyue&age=18, 是组成url问号后边的参数
	requst.URL.RawQuery = params.Encode()
	r, err := http.DefaultClient.Do(requst)
	if err != nil {
		fmt.Println("ss")
	}
	defer r.Body.Close()
	printBody(r)
}
func main() {
	requstByParamsPost()
}

结果:

cpp 复制代码
{
  "args": {
    "age": "18", 
    "name": "kaiyue"
  }, 
  "data": "", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept-Encoding": "gzip", 
    "Content-Length": "0", 
    "Host": "httpbin.org", 
    "User-Agent": "Go-http-client/1.1", 
    "X-Amzn-Trace-Id": "Root=1-6544e26c-2a47c0392e3351a71259c068"
  }, 
  "json": null, 
  "origin": "120.244.60.192", 
  "url": "http://httpbin.org/post?age=18&name=kaiyue"
}

二、定制http头中的参数

cpp 复制代码
func requstByHeader(){
	requst, err := http.NewRequest(http.MethodGet, "http://httpbin.org/get", nil)
	if err != nil {
		fmt.Println("ss")
	}

	requst.Header.Add("user-agent", "chrome")
	r, err := http.DefaultClient.Do(requst)
	if err != nil {
		fmt.Println("ss")
	}
	defer r.Body.Close()
	printBody(r)
}

func main() {
	requstByHeader()
}

结果:

cpp 复制代码
{
  "args": {}, 
  "headers": {
    "Accept-Encoding": "gzip", 
    "Host": "httpbin.org", 
    "User-Agent": "chrome", 
    "X-Amzn-Trace-Id": "Root=1-6544e394-14143f26584a7eed32728fd7"
  }, 
  "origin": "120.244.60.192", 
  "url": "http://httpbin.org/get"
}

可以看到其中头部信息已经打印出自己增加的部分内容

相关推荐
情 九14 小时前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
AIsoft_868921 小时前
学术讲座录音如何整理?录音APP可行吗
android·iphone
步行cgn1 天前
HTTP 请求报文结构详解:请求行、请求头、请求体各自的作用
网络·网络协议·http
紧跟先前的步伐1 天前
Go AI Agent 实战 22|完善 Agent 执行循环:从工具调用到最终回答
人工智能·ai·golang
后台模板学习1 天前
Go Web开发中任务调度框架的源码解析与高可用实现方案
开发语言·后端·golang
FungLeo1 天前
成为全栈·Go 后端篇·分类树与标签关系:目录变更为何需要协调
golang·go·gorm·数据库事务·分类树·成为全栈
看浪的路人1 天前
第6讲:Streaming 优化——告别“转圈圈“的用户体验
ios·iphone·xcode
fly-iot1 天前
【FDE知识库】(1):AI 编程时代开发语言选型分析,云使用go,企业用java,算法python,底层c
开发语言·人工智能·golang
FungLeo1 天前
成为全栈·Go 后端篇·文章查询与展示投影:安全分页、排序和软删除
golang·go·gorm·分页查询·成为全栈·sql安全
明天也要努力学习2 天前
HTTP 协议的基本格式和 fiddler 的用法
网络协议·http·fiddler