HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = "text/xml";
request.Timeout = 90000;
//request.Headers.Set("Platform", "10");
request.Headers.Add("Platform", "10");
无论是set 或者 add,在服务端 Request.Headers["Platform"] 都取不到值,求解?
找到原因了,因为使用了写入请求数据的流,所以会丢失http头
测试了2个都没有问题。。就是一个简单的测试,自己请求自己
x.aspx
protected void Page_Load(object sender,EventArgs e)
{
Response.Write("platform:"+Request.Headers["platform"]);
if (Request.QueryString["op"] == "get")
{
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://root.w3dev.cn/x.aspx");
req.ContentType = "text/xml";
//req.Headers["Platform"] = "10";
req.Headers.Add("Platform","10");
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);
Response.Write(sr.ReadToEnd());
sr.Close();
resp.Close();
}
// ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertificateValidationCallback);
}