Проверка конверта с помощью Ksoap2 (Android) - PullRequest
13 голосов
/ 18 января 2012

Исходя из iOS У меня довольно трудные времена с веб-сервисами в Android. Я потратил несколько часов на примеры, чтение блогов и успешное общение с веб-сервисом, и все же это вопрос удачи ....

Итог, и я хочу видеть конверт, который отправляется. В iOS я могу просто посмотреть на XML-сообщение, которое будет отправлено, сравнить его с SoapUI или чем-то в этом роде и понять, что не так. Разве мы не можем сделать это? Перед вызовом выведите XML в System.out.print?

Я также хотел бы сделать то же самое с ответом, получить простой HTTP-ответ, потому что исключения Ksoap2 довольно плохие.

Извините, если это довольно простой вопрос, но я немного расстроен: (

Ответы [ 2 ]

32 голосов
/ 18 января 2012

После того, как вы создали HttpTransportSE androidHttpTransport, вы можете добавить строку:

 androidHttpTransport.debug = true; 

После вызова androidHttpTransport.call(SOAP_ACTION, envelope); вы можете получить запрос и ответ в формате XML от двух строковых переменных:

androidHttpTransport.requestDump;
androidHttpTransport.responseDump;

Вы можете распечатать эти значения в журнале или получить к ним доступ в режиме отладки.

2 голосов
/ 06 ноября 2012

Используйте монитор TCP / IP, например, который входит в Eclipse (Window-> Show View-> Debug-> TCP / IP Monitor). Я бы сказал, что печать конверта XML не относится к коду, а только для отладки. Если ваш веб-сервис прослушивает порт 8080, вы должны сконфигурировать монитор для прослушивания порта 8081 и для мониторинга порта 8080. Затем укажите SOAP-клиент на порт 8081. Таким образом, монитор TCP / IP получит XML, отобразит его и перешлет это к фактическому обслуживанию в 8080. Это будет делать то же самое для ответа. Это также будет работать SoapUI (просто укажите его на порт 8081).

...