『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因 - InkFx-网络协议

『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因 - InkFx-网络协议,第1张

『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因

近来研究 HttpWebRequest —— 辅助类完成时,POST JSON数据 总会 丢失标头(Headers)。


 

 

 

HttpWebRequest POST JSON数据,分如下几步:

> 将 JSON 转为 byte[]。


> 从 HttpWebRequest.GetRequestStream() 获得 写入流。


> 将 byte[] 写入到这个 Stream 中。


 

类似的 *** 作,包括 文件上传,POST 表单 —— 最终都要 转换成 byte[]

 

 

 

核心注意事项:

一定不要设置HttpWebRequest.ContentLength 这个字段。


手动设置 这个字段 将导致 标头(Header)丢失【尤其是 自定义标头丢失】。


 

『备忘』HttpWebRequest 在 POST 提交时, 标头(Headers)丢失原因 - InkFx-网络协议,第2张

 

 

特此备忘,希望其他有类似问题的朋友 不要走弯路。


> 这两天,对于 标头丢失 这个 BUG,我查遍了 一百多个网页,没有答案。


> 又 反编译了 .Net 底层类库,看是不是 微软 不允许 自定义标头。


> 最后 居然是这样一行 简单的代码 —— 足足浪费了 3天时间。


 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/547797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019-09-11
下一篇 2019-09-11

发表评论

登录后才能评论

评论列表(0条)

保存