http.NewRequest自定义header头键值对,如何让keyName首字母不大写?

今天在开发 个推push时,发现一个坑,和官方反馈,得到的消息是,他们不兼容header中keyName首字母大小写的问题。让开发人员自行解决。


发起请求的部分代码如下:


req, err := http.NewRequest("POST", url, body)
req.Header.Add("authtoken", auth_token)

打印的日志如下:


&{POST https://restapi.getui.com/v1/h ... ingle HTTP/1.1 1 1 map[Authtoken:[151af1b9d4ba2d57f126b30d59b4ec585dd72d8e8980e5d63131e67478cd9702] Content-Type:[application/json]]

这里输出的 Authtoken是首字母大写的,并不是小写的,导致 个推 返回错误信息


respResult  {"result":"not_auth"}

个推示例代码:


curl -H "Content-Type: application/json" \
-H "authtoken:eef0742e9bb7aa52bd1ede66a0a20c68057208656e5f558c020fb24aa5b98586" \
https://restapi.getui.com/v1/C ... ingle \
-XPOST -d '{
"message":{
"appkey":"pMEgGQ9bgz5LVAPX8q8WH4",
"is_offline":false,
"msgtype":"notification"
},
"notification":{
"text":"text",
"title":"tttt",
"transmission_type":true,
"transmission_content":"透传内容"
},
"cid":"1fa0795a57c863ecc9a9ea6437b8924f",
"requestid":"123456789"
}'

用curl返回结果


{"result":"ok", "taskid":"RASS_0109_3ed7bcb9904a2d8208261d0c78a1e999", "status":"successed_offline"}

参考链接


http://docs.getui.com/server/rest/push/#3

已邀请:

dcb9

赞同来自: itsky365 傅小黑 Samuier Xanthus

// 大小写有特殊要求的用下面这种方式添加
req.Header["authtoken"] = []string{auth_token}

傅小黑

赞同来自:

没有办法,Go 是遵循 HTTP RFC 的,Header 的大小写规则是规范规定的,没有什么办法。

wxy

赞同来自:

header 是map 所以像楼上那样直接跳过set ,直接给值就可以了

要回复问题请先登录注册