HttpWebRequest要比域解析到的不同IP

时间:2010-03-17 22:26:15

标签: c# .net httpwebrequest webrequest

长话短说一个API我正在调用不同的环境(dev / staging / uat / live)是通过在服务器上放置一个主机记录来设置的,这样实时域就可以解析为其他服务器的HTTP请求了。

问题是他们已经在很多不同的环境中做到这一点,我们没有足够的服务器来再使用服务器范围的主机文件(我们有一些环境在同一台服务器上运行 - 幸运的是不是开发和生活:P)。

我想知道是否有办法向域发出WebRequest请求但是明确指定它应该连接的服务器的IP?或者有没有办法做到这一点,一直到套接字连接(我真的不想浪费时间/通过尝试重新实现HTTP协议来创建错误。)

PS:我已经尝试过,我们不能只为每个环境获得一个新的子域。

2 个答案:

答案 0 :(得分:1)

欺骗HTTP主机标头的一种方法是将代理设置为您希望发送请求的实际服务器。像

这样的东西
request.Proxy = new WebProxy(string.Format("http://{0}/", hostAddress));

可能会奏效。

答案 1 :(得分:0)

有多种方法可以控制配置值。

  1. 您在.NET中启用了条件编译,您可以在其中创建配置集并创建可以使用特定域而不是更改其解析策略的指令。例如,在调试中,您可以使用x.com,在发布模式下,您可以使用y.com,无论您需要在哪里引用您的网址。
  2. Web.config和app.config现在支持根据所选配置进行更改,您可以使用web.debug.config和web.release.config,并且可以在此处指定不同的URL引用。