Golang http 请求提示重复的 header 头如何解决?

2022-12-03 18:20:29 +08:00
 javashell

使用 go 自带的 net/http 中的方法请求 url ,总提示too many transfer encodings: ["chunked" "chunked"]导致报错无法获取 Body 内容。 根据关键词找到了相关的issues 在 Golang 的 1.15 版本上才出现的问题,虽说也提供了相关的解决方法(修改 go 的库文件)但是总感觉不方便。 除了 issues 中提到的方法,还有其他方法进行修复吗?

附上返回包的 header

HTTP/1.1 200 OK
transfer-encoding: chunked
X-Frame-Options: SAMEORIGIN
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 10 Nov 2022 02:23:46 GMT
2105 次点击
所在节点    Go 编程语言
8 条回复
Mitt
2022-12-03 18:57:59 +08:00
目测是 map 区分大小写导致的,但还得看你怎么调用的,应该给出你调用的例子
javashell
2022-12-03 19:31:57 +08:00
@Mitt
代码是这样的
```go
func login() (Token string, Account string, FullName string) {
client = &http.Client{}
data := "提交的数据"
req, _ := http.NewRequest("POST", "http:///xxxxxx", bytes.NewReader([]byte(data)))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Accept", "*/*")
req.Header.Set("Cache-Control", "no-cache")

resp, _ := client.Do(req)

r, _ := io.ReadAll(resp.Body)

...
```
novolunt
2022-12-03 22:46:23 +08:00
以下是人工智障的回答
Vintingb
2022-12-03 23:10:42 +08:00
@novolunt 这是啥网站
novolunt
2022-12-03 23:19:42 +08:00
kingcanfish
2022-12-04 10:30:47 +08:00
加个这个请求头试试?
```
req.Header.Set ("Accept-Encoding","identity")
```
alsas
2022-12-04 10:38:32 +08:00
@novolunt 禁止中国号码注册 咋办
javashell
2022-12-04 12:13:55 +08:00
@kingcanfish 这个试过了 禁止分片传输没用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/899843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX