我需要创建一个发送到我们网站的网页的请求,但是我也需要设置主机头信息.我已经尝试使用HttpWebRequest,但是头信息是只读的(或至少它的主机部分).我需要这样做,因为我们要在用户可以之前执行页面的初始请求.我们有10个Web服务器负载平衡,因此我们需要从每个Web服务器请求该文件.
我已经尝试过以下内容:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://192.168.1.5/filename.htm"); request.Headers.Set("Host","www.mywebsite.com"); WebResponse response = request.GetResponse();
解决方法
虽然这是一个很晚的答案,也许有人可以得到它的好处
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri("http://192.168.1.1")); request.Headers.GetType().InvokeMember("ChangeInternal",BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod,null,request.Headers,new object[] {"Host","www.mysite.com"});
反思是你的朋友:)