我正在尝试捕获传出的 HTTP 请求并将其替换为另一个。例如,我有一个发起请求的应用程序,www.xxxxxxxxxx.com/something
我需要捕获这个请求,而不是去 www.xxxxxxxxxx.com/something 我必须将它重定向到www.yyyyyyyyyyyy.com/somethingElse.
该请求是由我无权访问源代码的应用程序发出的,因此必须在应用程序之外完成。
任何人都可以给我一个提示如何做到这一点?
我正在尝试捕获传出的 HTTP 请求并将其替换为另一个。例如,我有一个发起请求的应用程序,www.xxxxxxxxxx.com/something
我需要捕获这个请求,而不是去 www.xxxxxxxxxx.com/something 我必须将它重定向到www.yyyyyyyyyyyy.com/somethingElse.
该请求是由我无权访问源代码的应用程序发出的,因此必须在应用程序之外完成。
任何人都可以给我一个提示如何做到这一点?
您可以为此使用提琴手自动响应器
显然,这只有在您可以完全访问客户端机器时才有效。如果这需要从服务器完成,您可以在服务器上设置代理以将请求中继到不同的网页。
检查此博客条目以获取详细信息
这篇博文描述了如何修改请求,但您也可以轻松地将它们转发到不同的域。
也可以使用生成的证书通过 HTTPS 使用此技术 http://www.fiddler2.com/fiddler/help/httpsdecryption.asp
有些人似乎声称这个答案行不通,我很欣赏他们对提琴手的能力感到困惑的事实,但最终他们错了,做你的研究。
一个更简单的解决方案可能是覆盖您的本地 DNS,您可以使用 Windows 上的 HOSTS 文件执行此操作,请记住,这会将原始主机标头发送到您可能不想要的不同域。
如果请求是从客户端发起的,那么您无法拦截该请求并将用户重定向到其他地址。但是,您可以在 HTTP 管道中添加一个 HTTPModule,它将在向客户端浏览器发送响应之前将 URL 更改为其他地址。
不,你不能在客户端这样做。
should redirect
有www.yyyyyyyyyyyy.com/somethingElse
任何请求时,您可以www.xxxxxxxxxx.com/something
on the server side
.这是什么应用程序!通常,如果您前面有 apache、lighttpd、cherokee 等网络服务器,或者在其上部署了应用程序,则可以使用 URL 重写。
Apache 可以做到这一点,甚至是不同的服务器。http://httpd.apache.org/docs/2.0/misc/rewriteguide.html