HttpWebRequest怎样设置http头

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);
    }