SoapUI与Fiddler配合使用

40

我正在尝试通过 Fiddler 路由我的 SoapUI Web 服务请求,但似乎不起作用。 我尝试了像这样的 URL:

http://localhost./myservice/myservice.asmx
http://localhost:8888/myservice/myservice.asmx

后者虽然经过Fiddler,但返回的是请求本身而非来自Web服务的响应。有什么帮助吗?

5个回答

76

非常感谢。它起作用了。我只需要在将wsdl添加到soapUI项目后设置代理设置。 - Ashish

10

要解密由SoapUI生成的HTTPS流量,您可能需要将Fiddler证书导入到Java信任库文件cacerts中。对于SoapUI,此文件通常位于“C:\ Program Files(x86)\ SmartBear \ SoapUI-5.0.0 \ jre \ lib \ security \”(或您安装它的版本和路径)。

  1. 在Fiddler中,将根证书导出到桌面:工具> Fiddler选项...> HTTPS>将根证书导出到桌面

  2. 以管理员身份运行cmd

  3. cd到SoapUI的JRE的security文件夹,例如:

    cd "C:\Program Files (x86)\SmartBear\SoapUI-5.0.0\jre\lib\security\"
    
  4. 备份cacerts文件:

     xcopy cacerts cacerts.bak
    
  5. 导入 Fiddler 证书:

     ..\..\bin\keytool.exe -import -alias fiddler -file "C:\Users\<username>\Desktop\FiddlerRoot.cer" -keystore cacerts -storepass changeit    
    

    这里的 "changeit" 是 cacerts 存储库的密码。

  6. 当提示信任证书时,请输入 yes

  7. 重新启动 SoapUI。

  1. 配置 SoapUI 使用 Fiddler 作为代理:转到 文件 > 首选项 > 代理设置 并指定:

    • 代理设置:手动
    • 主机:localhost
    • 端口:8888(或您的 Fiddler 使用的任何端口)

请记得在 Fiddler 不运行时恢复原始代理设置。


3
有时会发生默认端口8888被其他应用程序使用的情况。就像在我的情况下一样,它是使用python,所以不能使用8888端口。
因此,您提到的端口号应该是Fiddler正在监听的端口号。
捕获快照,这样更容易理解。
Step 1 & Step 2 to be performed on Fiddler
Step 3 & Step 4 on Soapui/ReadyaPI

enter image description here


3

Fiddler会自动将自己注入为代理,但仅限于IE栈。而SoapUI使用的是Java栈,因此代理不会自动设置。


3
我的问题是如何将Fiddler连接到SoapUI? - Ashish

0

你尝试过了吗:

http://localhost/myservice/myservice.asmx (without the dot)

更新

Fiddler通过在您的计算机上充当代理来工作。启动时,它将在端口8888上设置自己。这就是为什么当您使用localhost:8888时它能够工作。如果您想使用localhost,那么您需要告诉Fiddler查看端口80。

从Internet Explorer主菜单中,单击工具,单击Internet选项,单击连接,单击局域网设置,最后单击高级。现在将端口更改为80,看看是否可以正常工作。


所有从浏览器发出的请求都经过 Fiddler。但是从 soapUI 发出的请求没有通过 Fiddler 路由。您认为我们需要更改 soapUI 选项吗? - Ashish
你在SoapUI中使用的URL是什么?是localhost吗? - Naeem Sarfraz
我尝试了以下三个:http://localhost/myservice/myservice.asmx http://localhost./myservice/myservice.asmx http://localhost:8888/myservice/myservice.asmx - Ashish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接