【发布时间】:2012-04-08 05:02:37
【问题描述】:
我不确定这些突出显示的值是什么类型的标头,但是我应该如何使用 HttpWebRequest 添加它们?
突出显示的部分是否被视为 http 请求的主体或标头数据?也就是说,哪种方式是正确的?
这是我目前使用的代码:
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("/securecontrol/reset/passwordreset");
request.Headers.Add("Authorization", "Basic asdadsasdas8586");
request.ContentType = "application/x-www-form-urlencoded";
request.Host = "www.xxxxxxxxxx.com";
request.Method = "POST";
request.Proxy = null;
request.Headers.Add("&command=requestnewpassword");
request.Headers.Add("&application=netconnect");
但是我应该改用以下来构建上面的 Http 请求吗?
string reqString = "&command=requestnewpassword&application=netconnect";
byte[] requestData = Encoding.UTF8.GetBytes(reqString);
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("/securecontrol/reset/passwordreset");
request.Headers.Add("Authorization", "Basic ashAHasd87asdHasdas");
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = requestData.Length;
request.Proxy = null;
request.Host = "www.xxxxxxxxxx.com";
request.Method = "POST";
using (Stream st = request.GetRequestStream())
st.Write(requestData, 0, requestData.Length);
【问题讨论】:
-
您的第一个代码 sn-p 应该可以正常工作,但是要验证数据是否确实在标头中,您是否尝试在 Wireshark 或类似的东西中查看数据包?在 Wireshark 中,您可以右键单击一个数据包,选择在新窗口中打开它,然后展开“超文本传输协议”部分。
-
@M. Babcock:它们不一样,我更改了代码中的值。
-
@Lander :我正在使用一个非常安全的服务器,实际代码如此之大,不幸的是似乎需要时间来测试它:/
标签: c# http-headers