使用Ksoap2(Android)检查信封

时间:2012-01-18 17:40:48

标签: android web-services soap ksoap2 envelope

来自iOS我在Android中使用Web服务非常困难。我花了几个小时尝试示例,阅读博客,与网络服务成功沟通似乎仍然是运气问题....

底线,我希望能够看到正在发送的信封。在iOS中,我可以查看将要发送的XML消息,将其与SoapUI或类似内容进行比较,并了解错误。我们不能那样做吗?在调用之前将XML输出到System.out.print?

我还想对响应做同样的事情,得到简单的http响应,因为Ksoap2异常非常差。

很抱歉,如果这是一个非常基本的问题,但我有点沮丧:(

2 个答案:

答案 0 :(得分:32)

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

 androidHttpTransport.debug = true; 

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

androidHttpTransport.requestDump;
androidHttpTransport.responseDump;

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

答案 1 :(得分:2)

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