捕获HTTP请求

时间:2012-04-04 08:13:56

标签: httpwebrequest

我正在尝试捕获传出的HTTP请求并将其替换为另一个。例如,我有一个应用程序向www.xxxxxxxxxx.com/something发起请求 我需要抓住这个请求而不是去www.xxxxxxxxxx.com/something我必须将它重定向到www.yyyyyyyyyyyy.com/somethingElse.

请求由应用程序发出,我无法访问源代码,因此必须在应用程序之外完成。

任何人都可以暗示如何做到这一点?

5 个答案:

答案 0 :(得分:2)

你可以使用fiddler自动应答器

显然,这只有在您拥有对客户端计算机的完全访问权限时才有效。 如果需要从服务器完成此操作,您可以在服务器上设置代理,以将请求转发到其他网页。

查看此博客条目以获取详细信息

此博客文章介绍了如何修改请求,但您可以轻松地将它们转发到其他域。

也可以使用生成的证书在HTTPS上使用此技术 http://www.fiddler2.com/fiddler/help/httpsdecryption.asp

有些人似乎声称这个答案不起作用,我很欣赏他们被提琴手的能力所困惑,但最终他们错了,做你的研究。

更简单的解决方案可能是覆盖您的本地DNS,您可以使用Windows上的HOSTS文件执行此操作,请记住,这会将原始主机标头发送到您可能不需要的其他域。

答案 1 :(得分:1)

使用智能proxy或重写server end上的网址。

答案 2 :(得分:1)

如果请求是从客户端发起的,那么您无法拦截该请求并将用户重定向到其他地址。但是,您可以在HTTP管道中添加HTTPModule,它会在将响应发送到客户端浏览器之前将URL更改为其他地址。

答案 3 :(得分:0)

不,你不能在客户端那样做。

  • 相反,当should redirect www.yyyyyyyyyyyy.com/somethingElse发出任何请求时,您www.xxxxxxxxxx.com/somethingon the server side
  • 或使用LB或代理。

答案 4 :(得分:0)

这是什么类型的应用程序!通常情况下,如果您有一个像apache,lighttpd,cherokee在其前面或应用程序部署在其上的Web服务器,那么您可以使用URL-Rewritting。

Apache可以做到这一点,甚至可以用于其他服务器。 http://httpd.apache.org/docs/2.0/misc/rewriteguide.html