13

来自 iOS,我在 Android 中使用 Web 服务时遇到了相当困难的事情。我花了几个小时尝试示例、阅读博客以及与 Web 服务成功通信似乎仍然是一个运气问题......

底线,我希望能够看到正在发送的信封。在 iOS 中,我可以只查看将要发送的 XML 消息,将其与 SoapUI 或类似的东西进行比较,然后了解问题所在。我们不能这样做吗?在调用之前将 XML 输出到 System.out.print?

我也想对响应做同样的事情,得到普通的 http 响应,因为 Ksoap2 异常很差。

对不起,如果这是一个非常基本的问题,但我有点沮丧:(

4

2 回答 2

33

创建之后,HttpTransportSE androidHttpTransport您可以添加以下行:

 androidHttpTransport.debug = true; 

调用后,androidHttpTransport.call(SOAP_ACTION, envelope);您可以从两个 String 变量中获取 XML 格式的请求和响应:

androidHttpTransport.requestDump;
androidHttpTransport.responseDump;

您可以将这些值打印到日志或在调试模式下访问它们。

于 2012-01-18T17:51:27.323 回答
2

使用 TCP/IP 监视器,例如 Eclipse 中的监视器(Window->Show View->Debug->TCP/IP Monitor)。我认为打印 XML 信封不属于代码,因为它仅用于调试。如果您的 web 服务正在侦听端口 8080,您可以将监视器配置为侦听端口 8081 并监视端口 8080。然后将 SOAP 客户端指向端口 8081。这样 TCP/IP 监视器将接收 XML,显示它,然后转发它到 8080 的实际服务。它会做同样的响应。这也适用于 SoapUI(只需将其指向端口 8081)。

于 2012-11-06T01:40:30.907 回答