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

http.header.Set()与Add()区别;

在Go语言中进行HTTP请求时,http.Header对象表示HTTP请求或响应的头部信息。http.Header是一个map[string][]string类型的结构,用于存储键值对,其中键表示HTTP头字段的名称,值是一个字符串切片,可以存储多个相同名称的头字段值。

http.Header提供了两个主要的方法来设置头部字段的值:SetAdd,它们之间有一些重要的区别:

  1. Set方法:
    • Set 方法用于设置指定头字段的值,如果该头字段已经存在,则会覆盖之前的值。
    • 这意味着无论你调用多少次 Set 方法,最终该头字段只会包含最后一次调用时设置的值。
    • 通常用于覆盖某个特定头字段的值,例如设置自定义的HTTP头字段。
header.Set("Content-Type", "application/json")
  1. Add方法:
    • Add 方法用于向指定头字段添加一个新的值,而不会覆盖已有的值。
    • 这允许你为同一个头字段设置多个不同的值,这在某些情况下很有用,例如设置多个Set-Cookie头字段。
header.Add("Set-Cookie", "session_id=123")
header.Add("Set-Cookie", "user_id=456")

综上所述,Set 方法用于设置头字段的单个值,而 Add 方法用于向头字段添加多个不同的值。根据你的需求和HTTP头部的具体要求,选择合适的方法来操作HTTP头字段。
当使用http.HeaderAdd方法向头部字段添加多个值时,你可以通过http.Header对象的Get方法来获取这些值,并打印它们。以下是一个示例代码,演示如何打印使用Add方法添加的多个值:

package mainimport ("fmt""net/http"
)func main() {header := http.Header{}header.Add("Set-Cookie", "session_id=123")header.Add("Set-Cookie", "user_id=456")// 获取头字段 "Set-Cookie" 的所有值cookies := header["Set-Cookie"]// 打印每个值for _, cookie := range cookies {fmt.Println(cookie)}
}

在这个示例中,header["Set-Cookie"] 返回一个字符串切片,其中包含了所有添加到 “Set-Cookie” 头字段的值。然后,使用循环遍历该切片并打印每个值。

注意:这里使用的是http.Header的map形式来获取头字段的值,如果要获取单个值,也可以使用Get方法,如下所示:

cookieValue := header.Get("Set-Cookie")
fmt.Println(cookieValue)

使用Get方法将返回头字段的第一个值,而不是整个切片。

项目中遇到的问题:

使用Set方法无法成功访问
使用Add方法添加header,httpRequest请求成功。

http://www.lryc.cn/news/186720.html

相关文章:

  • vue-7-vuex
  • SSO单点登录和OAuth2.0区别
  • 【轻松玩转MacOS】基本操作篇
  • 华为ICT——第三章图像处理基本任务
  • (C++)引用的用法总结
  • Charles:移动端抓包 / windows客户端 iOS手机 / 手机访问PC本地项目做调试
  • 【AI】深度学习——人工智能、深度学习与神经网络
  • RK3288:BT656 RN6752调试
  • LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment
  • Milvus踩坑笔记
  • 什么是轴电流?轴电流对轴承有什么危害?
  • react create-react-app v5配置 px2rem (不暴露 eject方式)
  • .net中用标志位解决socket粘包问题
  • 【Ubuntu】Systemctl 管理 MinIO 服务器的启动和停止
  • 《golang设计模式》第二部分·结构型模式-07-代理模式(Proxy)
  • Jmeter常用线程组设置策略
  • 【Spring】Spring MVC 程序开发
  • 如何在企业网站里做好网络安全
  • windows server 2012 服务器打开系统远程功能
  • 智能工厂MES系统,终端设备支持手机、PDA、工业平板、PC
  • GPT的优势和GPT缺点
  • 微信小程序开发缺少中间证书问题(腾讯云、阿里云等做服务器)
  • 动态代理初步了解
  • QT国际化
  • 微信小程序button按钮去除边框去除背景色
  • Neo4j深度学习
  • 【数据结构C/C++】链式存储与顺序存储结构栈
  • 【数据库系统概论】数据定义之基本表的定义/创建、修改和删除
  • 面试算法22:链表中环的入口节点(1)
  • 蓝桥杯---第二讲---二分与前缀和