Go使用http传输数据出错

weixin_38071717 2019-09-20 09:59:09
接手了别人的项目,在测试的过程中发现通过server端往agent端传数据时出现错误,提示
`invalid character '<' looking for beginning of value `
通过查看代码
`res, err := http.NewRequest("POST", url, body) `
res的内容为
`&{POST http://10.x.x.x/api/v1/xxx/ HTTP/1.1 1 1 map[] {0xc000c23230} 0x70f050 252 [] false 10.234.234.74 map[] map[] < nil > map[] < nil > < nil > < nil > < nil >}`
而`resp, err = http.DefaultClient.Do(res)`后
resp的内容为
`&{404 Not Found 404 HTTP/1.1 1 1 map[Connection:[keep-alive] Content-Length:[3650] Content-Type:[text/html] Date:[Tue, 14 May 2019 03:09:32 GMT] Etag:["54480a74-e42"] Server:[nginx/1.6.2]] 0xc000180bc0 3650 [] false false map[] 0xc000b59100 < nil >}`
可以看到错误应该是数据里的`< nil >`
但是实在不知道如何排查和问题定位,求各位帮忙。
...全文
34 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38076068 2019-09-20
  • 打赏
  • 举报
回复
用 `body = bytes.NewReader` 后,数据的格式变成了 &{[123 34 100 97 116 97 34 58 91 123 34 97 99 116 105 111 110 34 58 34 97 100 100 69 110 116 114 121 34 44 34 101 110 116 114 121 34 58 34 49 48 46 50 51 57 46 54 51 46 50 51 57 34 44 34 115 101 116 110 97 109 101 34 58 34 115 121 11 34 107 101 121 4 108 99 88 86 108 99 51 82 114 90 88 107 61 34 125] 0 -1}
weixin_38080819 2019-09-20
  • 打赏
  • 举报
回复
`var jdata = make(map[string]interface{})` `jdata["data"] = idatas` `jsonData, err := json.Marshal(jdata)` `res, err := HttpRequestPost(uri, jsonData)` 数据定义和json转换代码如上
weixin_38081987 2019-09-20
  • 打赏
  • 举报
回复
因为就是`NewRequest("POST", url, body)`后,出现了`< nil >`内容,所以就感觉是不是body里面的数据有问题,导致出现`< nil >`空数据
weixin_38087753 2019-09-20
  • 打赏
  • 举报
回复
`Content-Type`用什么了?`application/x-www-form-urlencoded`?

473

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧