Saya berencana untuk mengembangkan aplikasi untuk iPhone dan aplikasi itu harus mengakses beberapa layanan SOAP. Saat melakukan pengecekan dasar pada iPhone SDK saya tidak dapat menemukan dukungan untuk mengakses layanan SOAP, sedikit Googling mengarah pada kesimpulan bahwa tidak ada dukungan untuk SOAP di iPhone SDK.
Jadi jika saya ingin membangun aplikasi itu, saya harus membuat pendekatan untuk mengakses layanan SOAP dari iPhone. Apa yang akan menjadi pendekatan terbaik? Adakah praktik terbaik? Apakah seseorang sudah menulis perpustakaan menggunakan fungsionalitas yang ada di iPhone SDK untuk mengakses layanan SOAP?
(Karena layanan yang saya butuhkan untuk mengakses diekspos oleh pihak lain dan mereka hanya mengeksposnya sebagai SOAP, sayangnya itu bukan pilihan untuk beralih ke jenis antarmuka lain (misalnya API berbasis REST).
Gero
Jawaban:
Satu kata: Jangan.
OK jelas itu bukan jawaban yang nyata. Tapi tetap saja SOAP harus dihindari dengan cara apa pun. ;-) Apakah mungkin untuk menambahkan server proxy antara iPhone dan layanan web? Mungkin sesuatu yang mengubah REST menjadi sabun untuk Anda?
Anda bisa mencoba CSOAP , pustaka SOAP yang bergantung pada libxml2 (yang termasuk dalam iPhone SDK).
Saya telah menulis kerangka SOAP saya sendiri untuk OSX. Namun itu tidak dipelihara secara aktif dan akan membutuhkan waktu untuk port ke iPhone (Anda harus mengganti NSXML dengan TouchXML sebagai permulaan)
sumber
Solusi saya adalah membuat server proxy menerima REST, mengeluarkan permintaan SOAP, dan mengembalikan hasilnya, menggunakan PHP.
Waktu untuk mengimplementasikan: 15-30 menit.
Bukan yang paling elegan, tapi solid.
sumber
Secara historis saya telah menggulung akses saya sendiri pada level rendah (pembuatan XML dan parsing) untuk menangani kebutuhan sesekali untuk melakukan permintaan gaya SOAP dari Objective-C. Yang mengatakan, ada perpustakaan tersedia yang disebut SOAPClient ( soapclient ) yang bersifat open source (BSD berlisensi) dan tersedia di Google Code ( mac-soapclient ) yang mungkin menarik.
Saya tidak akan membuktikan kemampuan atau efektivitasnya, karena saya belum pernah menggunakannya atau harus bekerja dengan API-nya, tetapi API itu tersedia dan mungkin memberikan solusi cepat untuk Anda tergantung pada kebutuhan Anda.
Apple pernah, pada suatu waktu, utilitas yang sangat rusak yang disebut WS-MakeStubs. Saya tidak berpikir itu tersedia di iPhone, tetapi Anda mungkin juga tertarik pada perpustakaan open-source yang dimaksudkan untuk menggantikannya - kode menghasilkan Objective-C untuk berinteraksi dengan klien SOAP. Sekali lagi, saya belum menggunakannya - tetapi saya telah menandainya di catatan saya: wsdl2objc
sumber
Anda dapat terhubung menggunakan alat yang saya temukan http://www.wsdl2code.com
sumber
Berikut ini adalah 4 contoh kode cepat yang mengeksekusi panggilan API menggunakan format layanan SOAP.
sumber
Lihat di sini tautan ini dan peta jalannya. Mereka memiliki RO | C di jalan, dan yang dapat terhubung ke layanan web mereka, yang mungkin termasuk SOAP (saya menggunakan versi VCL yang pasti menyertakannya).
sumber
Lihat gsoap yang menyertakan dua contoh iOS dalam paket unduhan di bawah ios_plugin. Alat ini mengkonversi WSDL ke kode untuk SOAP dan XML REST.
sumber