2012-01-18 26 views
13

Xuất phát từ iOS Tôi đang gặp một khoảng thời gian khá khó khăn với các dịch vụ web trong Android. Tôi đã dành nhiều giờ thử các ví dụ, đọc blog và giao tiếp thành công với dịch vụ web vẫn có vẻ là một câu hỏi may mắn ....Kiểm tra phong bì với Ksoap2 (Android)

Tóm lại và tôi muốn có thể thấy phong bì đang được gởi. Trong iOS tôi chỉ có thể nhìn vào thông điệp XML sẽ được gửi đi, so sánh nó với SoapUI hoặc một cái gì đó như thế và hiểu những gì là sai. Chúng ta không thể làm điều đó? Trước khi cuộc gọi xuất XML thành một System.out.print?

Tôi cũng muốn làm điều tương tự với câu trả lời, nhận được phản hồi http đơn giản, vì ngoại lệ Ksoap2 khá kém.

Xin lỗi nếu điều này là một câu hỏi khá cơ bản nhưng tôi nhận được một chút thất vọng :(

Trả lời

32

Sau khi bạn đã tạo ra bạn HttpTransportSE androidHttpTransport bạn có thể thêm dòng:

androidHttpTransport.debug = true; 

Sau khi gọi androidHttpTransport.call(SOAP_ACTION, envelope); bạn có thể nhận yêu cầu và phản hồi ở định dạng XML từ hai biến Chuỗi:

androidHttpTransport.requestDump; 
androidHttpTransport.responseDump; 

Bạn có thể in các giá trị này vào Nhật ký hoặc truy cập m bên trong chế độ gỡ lỗi.

+0

Nó hoạt động. Tnks – inversus

+0

Làm việc cho tôi :) cảm ơn – user1007522

+0

androidHttpTransport.requestDump cung cấp cho tôi null – Killer

2

Sử dụng màn hình TCP/IP, chẳng hạn như màn hình có trong Eclipse (Window-> Hiển thị View-> Debug-> TCP/IP Monitor). Tôi cho rằng việc in ấn phong bì XML không thuộc về mã, vì nó chỉ là để gỡ lỗi. Nếu webservice của bạn đang nghe trên cổng 8080, bạn sẽ cấu hình màn hình để nghe trên cổng 8081 và giám sát cổng 8080. Sau đó trỏ máy khách SOAP của bạn tại cổng 8081. Bằng cách đó, trình giám sát TCP/IP sẽ nhận XML, hiển thị nó, sau đó chuyển tiếp nó đến dịch vụ thực tế tại 8080. Nó sẽ làm tương tự cho phản ứng. Điều này cũng sẽ làm việc SoapUI (chỉ cần điểm nó tại cổng 8081).

Các vấn đề liên quan