2011-09-25 24 views
7

Tôi đã rà soát lưới và không thể tìm thấy bất kỳ tài liệu nào về gửi hình ảnh (hoặc bất kỳ tệp đính kèm) nào cho Dịch vụ Web bằng SOAP.Gửi hình ảnh từ thư viện đến Dịch vụ Web bằng SOAP

Tôi đã gửi dữ liệu văn bản tốt nhưng bây giờ tôi cần phải gửi hình ảnh từ thư viện cùng với dữ liệu văn bản, đặt ra một vấn đề khác - thực hiện hai hoặc nhiều tác vụ không đồng bộ cùng một lúc. Tôi sẽ cần thực hiện tổng số 4 cuộc gọi nếu bản ghi để gửi có hình ảnh liên kết với nó;

  1. Gửi dữ liệu văn bản.
  2. Kiểm tra xem tệp đã tồn tại trên máy chủ chưa.
  3. Gửi tệp.
  4. Liên kết tệp với bản ghi trên máy chủ bằng cách sử dụng u_id được gửi lại từ máy chủ.

Tôi được khuyên nên sử dụng phương pháp Base64 để chuyển tệp thành chuỗi rồi gửi nhưng tôi có cảm giác có cách làm sạch hơn bằng cách sử dụng SOAP (không có ý định chơi chữ).

Bất kỳ phản hồi nào được đánh giá cao.

* Xin lưu ý rằng tôi đã sử dụng httpClient nhưng phải thay đổi để sử dụng SOAP. Tôi cũng tương đối mới với Android nên tha thứ cho tôi nếu tôi đã nói bất cứ điều gì ngu ngốc ở đây.

Trả lời

6

Có ba cách gửi tệp đính kèm với SOAP.

  • base64Binary
  • SwA - SOAP với Attachments
  • MTOM

base64Binary gửi file đính kèm như inline base64 trong thông điệp SOAP. tức là Tệp đính kèm được nhúng trong Thông báo SOAP. Làm nổi bật tin nhắn bằng 33%.

SWA gửi tệp đính kèm bên ngoài thông báo SOAP (Thông điệp SOAP chứa tham chiếu đến tệp đính kèm). Nhưng tập dữ liệu SOAP không chứa tệp đính kèm.

MTOM Cung cấp tốt nhất của cả hai thế giới. Tệp đính kèm được gửi bên ngoài thông điệp SOAP có tham chiếu đến nó nhưng tệp đính kèm xuất hiện như thể nó được nhúng trong thông báo SOAP (tập dữ liệu SOAP chứa tệp đính kèm)

Do thực tế là tệp đính kèm được gửi bằng MTOM xuất hiện phần đính kèm là một phần của thông báo SOAP, nó cho phép bạn sử dụng các thuộc tính WS-* QOS (Chất lượng dịch vụ) khác. Ví dụ: thông điệp MTOM có thể được ký và mã hóa bằng WS-Security. Do đó, điều này cung cấp một cơ chế để gửi các tệp đính kèm được bảo mật mà không cần thêm thông số kỹ thuật.

This ví dụ cho thấy cách sử dụng MTOM với Apache AXIS2.

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