c# - 在 C# 中请求网页欺骗主机

标签 c# http http-headers

我需要为传送到我们网站的网页创建请求,但我还需要能够设置主机 header 信息。我已经使用 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();

显然这行不通,因为我无法更新 header ,而且我不知道这是否确实是正确的方法。

最佳答案

虽然这是一个很晚的答案,但也许有人可以从中受益

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

反射(reflection)是你的 friend :)

关于c# - 在 C# 中请求网页欺骗主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/359041/

相关文章:

c# - 发布参数始终为空

c# - 使用 .exe 合并 XML 配置文件

php - 处理动态站点中图像的数据 URI

python - 如何为 HTTP header 编码 UTF8 文件名? (Python,Django)

c# - Office 365 与 Asp.net Web 应用程序(MVC 应用程序)的集成?

c# - System.Progress 错误的调用顺序

javascript - 如何修复 Fetch API 中的 CORS 问题

http - 为什么我不能设置 cookie 和重定向?

javascript - HTTP header 上的多个值

http - 406 HTTP 状态错误的正确响应格式是什么