1

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

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

任何人都可以给我一个提示如何做到这一点?

4

5 回答 5

2

您可以为此使用提琴手自动响应器

显然,这只有在您可以完全访问客户端机器时才有效。如果这需要从服务器完成,您可以在服务器上设置代理以将请求中继到不同的网页。

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

这篇博文描述了如何修改请求,但您也可以轻松地将它们转发到不同的域。

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

有些人似乎声称这个答案行不通,我很欣赏他们对提琴手的能力感到困惑的事实,但最终他们错了,做你的研究。

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

于 2012-04-04T08:15:01.277 回答
1

在服务器端使用智能代理或重写 URL 。

于 2012-04-04T08:22:09.860 回答
1

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

于 2012-04-04T08:41:56.003 回答
0

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

  • 相反,当您should redirectwww.yyyyyyyyyyyy.com/somethingElse任何请求时,您可以www.xxxxxxxxxx.com/something on the server side.
  • 或者使用 LB 或代理。
于 2012-04-04T08:16:45.420 回答
0

这是什么应用程序!通常,如果您前面有 apache、lighttpd、cherokee 等网络服务器,或者在其上部署了应用程序,则可以使用 URL 重写。

Apache 可以做到这一点,甚至是不同的服务器。http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

于 2012-04-04T08:22:39.777 回答