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

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

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

> 将 JSON 转为 byte[]。

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

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

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

核心注意事项:

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

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

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

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

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

舒小龙   InkFx

2016-07-17 03:03

时间: 2024-10-22 14:49:28

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

给MySQL官方提交的bug report备忘

1.  http://bugs.mysql.com/bug.php?id=72215 2.  http://bugs.mysql.com/bug.php?id=72217 3.  http://bugs.mysql.com/bug.php?id=72529 4.  http://bugs.mysql.com/bug.php?id=72646 5.  http://bugs.mysql.com/bug.php?id=72705 6.  http://bugs.mysql.com/bug.php?i

考试备忘

托业考试: 您的注册信息已提交,系统为您自动生成 http://registration.toeic.cn/toec01reg/ToeicCandidate/TC_SignIn.aspx 登录账号: ETS0465684 登录密码: 经常用无@  注册邮箱: 经常用到的  银行注册会计师 编号:KCCBP6757889 密码:常用[email protected] 论文相关: 编号:2140 密码:常用包含@ 论文系统 考试备忘,布布扣,bubuko.com

JqGrid相关操作备忘 方法列表

JqGrid相关操作备忘 方法列表 1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridid").jqGrid('getRowData', id); 3.刷新列表:$(refreshSelector).jqGrid('setGridParam', { url: ''), postData: ''}).trigger('reloadGrid'); 4.选

[转] HTML5终极备忘大全(图片版+文字版)----张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1544 一.前言兼图片备忘 下图是我从testking网站上的Ultimate HTML5 Cheatsheat这篇文章中备忘图片(已大小优化,因为图片较高,故滚动显示). 但是,上面毕竟是图片格式(原图上兆),而且还是英文的,所以自己觉得有必要将上面的内容文字化,同时做下简单的中文翻译.整理一番,于是就有下面的些内容.

Nmap备忘单:从探索到漏洞利用(Part 4)

这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下防火墙的一些基础知识以便绕过它. 什么是防火墙? 防火墙是用来控制网络访问的软件或硬件.分为以下两类:1.基于主机的防火墙:2.基于网络的防火墙. 基于主机的防火墙 这是在单台主机上运行的软件,用来控制入站流量(从网络向主机)和出站流量(从主机向网络).这些软件安装于操作系统之上,常见例子就是Lin

备忘:hibernate, logback, slf4j实际应用一例

用hibernate写一些简单的数据库的Java应用.主要是温习一下.之前弄过的一些都忘了.发现还是得记下来,不然很快就忘. 1. Eclipse版本,用Juno, J2EE版本.最好下载zip版本的,直接解压就运行. 2. JDK安装,到Oracle上搜索jdk, 然后下载.安装JDK后,设置JAVA_HOME,指到JDK安装目录,将%JAVA_HOME%\bin放到PATH变量的最前面. 3. Maven.到Eclipse marketplace上搜索maven, 会有一个Maven Int

vscode 插件备忘

由于不喜欢嵌入式c语言开发IDE,所以一致就当IDE是编译器,编辑工作都是使用其他文本编辑器替代的,最开始使用source insight,但是乱码问题和新建工程的不便利(也许不太会用),让我很纠结,当看到ST3时,我眼前一亮,感觉这就是我想要的,虽然ST3很好,但是当我遇到vscode的时候,我毅然选择了vscode,还有比这还傻瓜的软件吗?还是微软懂中国人啊! ST3和VScode的NB功能都是依靠插件来实现的(vscode已经内置了很多功能了),貌似嵌入式c的插件不多,寻找了有些自己用的还

git命令整理备忘

git命令整理备忘 参考https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 一.基本命令 打开 git bash #创建本地 git 仓库: $ cd /home/object $ git init #添加文件 $ git add readme.md #跟踪整个文件夹可以使用 git add . $ git commit -m'说明' #提交 add 到的文件 $ git comm

20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: 需求分析 功能要求 1.自动生成题目 可独立使用(能实现自己编写测试类单独生成题目的功能) 可生成不同等级题目,类似于: 1级题目:2 + 5 =: 10 - 5 = 之类的两个数,一个运算符的题目 2.题目运算(判题) 可独立使用 实现中缀表达式转为后缀表达式并计算 判断用户答题正误,并输出正确结果 3.支持真分数 可独立使用 实现分数算式的