C# winform .net3.5 HttpWebRequest 使用host字段

由于.net4.0之后才支持host直接设置,.net3.5是设置不了host的,具体介绍可以到微软官网去看文档。

    //用于设置host .net3.5 HttpWebRequest host属性不能设置
    public class CusteredHeaderCollection : WebHeaderCollection
    {
        public bool HostHeaderValueReplaced { get; private set; }

        public string ClusterUrl { get; private set; }

        public CusteredHeaderCollection(string commonClusterUrl) : base()
        {
            if (string.IsNullOrEmpty("commonClusterUrl"))
                throw new ArgumentNullException("commonClusterUrl");

            this.ClusterUrl = commonClusterUrl;
        }

        public override string ToString()
        {
            this["Host"] = this.ClusterUrl;
            string tmp = base.ToString();
            this.HostHeaderValueReplaced = true;

            return tmp;
        }

    }

 HttpWebRequest request = null;

request = WebRequest.Create(“www.baidu.com”) as HttpWebRequest;

               FieldInfo headersFieldInfo = request.GetType().GetField("_HttpRequestHeaders", System.Reflection.BindingFlags.NonPublic
                                                          | System.Reflection.BindingFlags.Instance
                                                          | System.Reflection.BindingFlags.GetField);

                    CusteredHeaderCollection WssHeaders = new CusteredHeaderCollection("fahuo.cainiao.com");
                    headersFieldInfo.SetValue(request, WssHeaders);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值