是否可以使用webproxy将URL重定向到另一个url(例如fiddler)

我正在尝试解析另一个服务器中的WSDL文件,但在整个文档中都有硬编码的“localhost”。

当我拿到它时,显然该程序抱怨“连接被拒绝”,因为我的机器中没有运行任何东西。

我的问题是:是否可以使用webproxy(如fiddler)将这些localhost请求重定向到我的其他服务器,以便完成WSDL引用?

: – /

谢谢

ps我可以随时修复遥控器“wsdl”,但负责人将在这里待到下周,我想今天开始工作。

您可以使用Fiddler作为计算机的代理,然后重写WSDL以将localhost更改为正确的计算机名称。

FiddlerScript CookBook有一个关于如何编写这种脚本的例子。 转到该页面并搜索“删除所有DIV标签(以及DIV标签内的内容)”。 只需更改正则表达式以匹配localhost并将替换设置为您要使用的计算机名称。

如果您具有对计算机的SSH访问权限,则应该能够使用SSH端口转发来完成此操作。 我假设您使用的是Windows(基于C#标签),因此您可以按照此处的说明使用Putty: 使用PuTTY进行端口转发 。 只需按照这些说明将“localhost”上的所需端口转发到为WSDL提供服务的服务器即可。

或者,如果您使用的是基于* nix的计算机或Mac,请使用SSH w /以下命令:

ssh -L PORTYOUWILLUSE:localhost:PORTONSERVER username@serverhostname 

例如,如果WSDL是在端口80上提供的,那么您可以这样做

 ssh -L 80:localhost:80 username@server 

一旦您登录(使用任一方法),对端口80上的localhost的任何请求都将被重新路由到服务器。

如果您只想在解析WSDL时将其更改几分钟,则可以更改HOST文件并将“localhost”指向远程IP地址。 hosts文件位于Windows VISTA / XP中的“C:\ Windows \ System32 \ drivers \ etc”中。

有几种方法可以实现这一点,没有一种方法作为长期解决方案特别强大,但是你提到你只需要一些临时的东西,直到开发人员回来。

如果域之后的所有内容都匹配(如果您的远程URL与localhost相同),则可以在hosts文件中编辑localhost条目。

在system32 \ drivers \ etc中,将“hosts”文件复制到桌面上。 在记事本中打开并更改此行:

 127.0.0.1 localhost 

将IP地址(127.0.0.1)更改为远程域。 然后将hosts文件复制回etc目录。 (注意:无法以管理员或其他方式直接编辑此文件)。

如果远程Web服务上有多个域,在IIS中,您需要更改网站以服务于“localhost”的请求,这可能看起来有点奇怪,但它会起作用,因为您的计算机将向服务器的IP地址,但将请求域指定为“localhost”。 右键单击IIS中的网站并选择属性,然后将域“localhost”添加到该网站支持的HTTP-Header值列表中。 如果您通过IP地址访问IIS中的网站将提供内容,则可以忽略所有这些。 如果在多个网站之间共享该单个IP地址(通常就是这种情况),那么当IIS尝试查找“localhost”并且无法找到要指向的网站时,您将从IIS收到“错误的主机名”错误要求。

另一种可能性是使用名为Proxomitron的个人代理服务器。 它有点旧,不再开发,但它很容易设置,非常坚固。

安装完成后,打开它并单击“配置” – 将它侦听的端口更改为80.接下来,您需要创建一个重定向规则(它实际上不是重定向,更多是重写URL)。 您需要快速阅读文档以了解如何添加自己的重定向,但应用程序附带了大量示例。 您正在寻找的规则是RDIR:

$ RDIR()更加偷偷摸摸,并在不告诉您的浏览器的情况下重定向Proxomitron中的连接。 当您希望浏览器将其视为一个地方,实际上它正在其他地方时,这非常有用。