Saya mengalami banyak kesulitan menemukan informasi yang baik tentang cara memanggil layanan web SOAP / WSDL standar dengan Android. Yang saya dapat temukan adalah dokumen yang sangat berbelit-belit dan referensi ke "kSoap2" dan kemudian sedikit tentang penguraian semuanya secara manual dengan SAX . OK, tidak apa-apa, tapi ini tahun 2008, jadi saya pikir harus ada perpustakaan yang bagus untuk memanggil layanan web standar.
Layanan web pada dasarnya hanya satu yang dibuat di NetBeans . Saya ingin mendapat dukungan IDE untuk membuat kelas pipa ledeng. Saya hanya perlu cara termudah / paling elegan untuk menghubungi layanan web berbasis WSDL dari ponsel berbasis Android.
Jawaban:
Android tidak menyediakan perpustakaan SOAP apa pun. Anda bisa menulis sendiri, atau menggunakan sesuatu seperti kSOAP 2 . Seperti yang Anda perhatikan, orang lain dapat mengkompilasi dan menggunakan kSOAP2 dalam proyek mereka sendiri, tetapi saya tidak harus melakukannya.
Google telah menunjukkan, sampai saat ini, sedikit minat dalam menambahkan pustaka SOAP ke Android. Kecurigaan saya untuk ini adalah bahwa mereka lebih suka mendukung tren saat ini dalam Layanan Web menuju layanan berbasis REST, dan menggunakan JSON sebagai format enkapsulasi data. Atau, menggunakan XMPP untuk olahpesan. Tapi itu hanya dugaan saja.
Layanan web berbasis XML adalah tugas yang agak tidak sepele pada Android saat ini. Tidak tahu NetBeans, saya tidak bisa berbicara dengan alat yang tersedia di sana, tapi saya setuju bahwa perpustakaan yang lebih baik harus tersedia. Mungkin saja XmlPullParser akan menyelamatkan Anda dari menggunakan SAX, tapi saya tidak tahu banyak tentang itu.
sumber
org.apache.http.impl.client.DefaultHttpClient
hadir di Android SDK secara default. Itu akan membuat Anda terhubung ke WSDL.sumber
Memang benar bahwa karena SOAP overhead bukan pilihan terbaik untuk pertukaran data dengan perangkat mobile. Namun, Anda mungkin menemukan diri Anda dalam situasi di mana Anda tidak mengontrol format output server.
Jadi, jika Anda harus tetap menggunakan SOAP, ada perpustakaan kSOAP2 yang ditambal untuk Android di sini:
http://code.google.com/p/ksoap2-android/
sumber
Untuk memanggil layanan web dari perangkat seluler (terutama pada ponsel Android), saya telah menggunakan cara yang sangat sederhana untuk melakukannya. Saya belum pernah menggunakan API klien layanan web dalam upaya untuk memanggil layanan web. Pendekatan saya adalah sebagai berikut untuk melakukan panggilan.
HttpURLConnection
.getResonseCode
).ErrorInput
streaming pada objek HTTP yang sama dan terima kesalahannya jika ada.Saya telah menerapkan prosedur ini untuk ponsel Android, dan berhasil dijalankan. Saya dapat menguraikan respons bahkan jika lebih dari 700 KB.
sumber
SOAP adalah teknologi yang tidak sesuai untuk digunakan pada Android (atau perangkat seluler pada umumnya) karena pemrosesan / penguraian overhead yang diperlukan. Layanan REST adalah solusi yang lebih ringan dan itulah yang saya sarankan. Android hadir dengan SAX parser, dan cukup sepele untuk digunakan. Jika Anda benar-benar diharuskan untuk menangani / mengurai SOAP pada perangkat seluler maka saya merasa kasihan kepada Anda, saran terbaik yang dapat saya tawarkan adalah tidak menggunakan SOAP.
sumber
Sekitar setahun yang lalu saya membaca utas ini mencoba mencari tahu bagaimana melakukan panggilan SOAP di Android - saran untuk membangun sendiri menggunakan HttpClient membuat saya membangun perpustakaan SOAP saya sendiri untuk Android:
IceSoap
Pada dasarnya itu memungkinkan Anda untuk membangun amplop untuk dikirim melalui Java API sederhana, kemudian secara otomatis mem-parsingnya menjadi objek yang Anda tentukan melalui XPath ... misalnya:
Menjadi:
Saya menggunakannya untuk proyek saya sendiri tetapi saya pikir itu mungkin membantu beberapa orang lain jadi saya telah menghabiskan waktu untuk memisahkan dan mendokumentasikannya. Saya benar-benar akan menyukainya jika beberapa jiwa malang Anda yang tersandung pada utas ini saat googling "SOAP Android" bisa mencobanya dan mendapatkan manfaat.
sumber
sumber
Saya pernah kencan dengan KSOAP; Saya memilih pendekatan yang lebih sederhana.
Diberikan file WSDL, buat templat Permintaan SOAP untuk setiap Permintaan (untuk misalnya: menggunakan SOAP UI) dan kemudian gantilah nilai-nilai yang akan diteruskan dalam kode. POST data ini ke titik akhir layanan menggunakan instance DefaultHttpClient dan dapatkan aliran respons. Parsing Stream Respons menggunakan parser Tarik XML.
sumber
Anda dapat melihat WSClient ++
sumber
Saya telah membuat klien SOAP baru untuk platform Android. Ini menggunakan antarmuka yang dihasilkan JAX-WS, tetapi sejauh ini hanya merupakan bukti konsep.
Jika Anda tertarik, silakan coba contoh dan / atau tonton sumbernya di AndroidSOAP .
sumber
Jika Anda bisa, pilih JSON. Android hadir dengan paket org.json lengkap
sumber
Hubungi ksoap2 metode . Ini bekerja dengan sangat baik.
Atur detail, seperti
dan kemudian untuk mendapatkan hasilnya lakukan
sumber
Saya harap Memanggil layanan web dari Android membantu.
sumber
Beberapa bulan yang lalu saya bekerja dengan layanan web jax-ws di aplikasi j2ee, Di sana kami menggunakan CXF wsdl2java untuk menghasilkan tulisan rintisan klien WS dari file WSDL dan dengan potongan-potongan klien kami mengkonsumsi layanan web. Beberapa minggu yang lalu, ketika saya mencoba untuk mengkonsumsi layanan web dengan cara yang sama di platform android saya tidak bisa, karena jar android tidak memiliki semua "jax-ws" kelas pendukung di dalamnya. Waktu itu saya tidak menemukan alat seperti itu (jika saya tidak gagal google efisien) untuk memenuhi kebutuhan saya -
Jadi, saya mengembangkan Alat Pembuatan Klien SABUN Android sendiri . Di mana Anda harus mengikuti langkah-langkah ini:
misalnya:
sumber
Saya yakin Anda bisa membuat klien SOAP kecil dengan Axis . Instruksi pemasangan sumbu .
sumber
Saya pikir Layanan Panggilan SOAP Web dari aplikasi Android akan banyak membantu Anda.
sumber
Ikuti langkah-langkah ini dengan metode SOAP
Dari file WSDL,
buat Templat Permintaan SABUN untuk setiap Permintaan.
Kemudian gantilah nilai-nilai yang akan diberikan dalam kode.
POST data ini ke titik akhir layanan menggunakan instance DefaultHttpClient.
Dapatkan aliran respons dan akhirnya
Parsing Stream Respons menggunakan parser Tarik XML.
sumber
Jika Anda dapat menggunakan JSON, ada whitepaper, video dan sample.code dalam Mengembangkan Layanan Aplikasi dengan Server PHP dan Klien Ponsel Android .
sumber
Bagi saya cara termudah adalah dengan menggunakan alat yang bagus untuk menghasilkan semua kelas yang diperlukan. Secara pribadi saya menggunakan situs ini:
http://easywsdl.com/
Ini mendukung layanan web yang cukup kompleks dan menggunakan ksoap2.
sumber
Saya akan menyarankan memeriksa alat yang sangat berguna yang banyak membantu saya. Orang-orang yang mengurus proyek itu juga sangat membantu. www.wsdl2code.com/
sumber
Jika Anda mengalami masalah saat memanggil Layanan Web di android maka Anda dapat menggunakan kode di bawah ini untuk menghubungi layanan web dan mendapatkan respons. Pastikan bahwa layanan web Anda mengembalikan respons dalam Format Tabel Data .. Kode ini akan membantu Anda jika Anda menggunakan data dari database SQL Server . Jika Anda menggunakan MYSQL, Anda perlu mengubah satu hal cukup ganti kata NewDataSet dari kalimat
obj2=(SoapObject) obj1.getProperty("NewDataSet");
dengan DocumentElementJika Anda memiliki masalah tentang ini, Anda dapat menulis saya ..
sumber
Silakan unduh dan tambahkan file perpustakaan SOAP dengan Nama File proyek Anda: ksoap2-android-assembly-3.4.0-jar-with-dependencies
Bersihkan aplikasi dan kemudian mulai program
Berikut adalah kode untuk panggilan layanan SOAP
Hasilnya mungkin JSONObject atau JSONArray Atau String
Untuk referensi Anda yang lebih baik, https://trinitytuts.com/load-data-from-soap-web-service-in-android-application/
Terima kasih.
sumber
Ini adalah contoh kerja dari mengkonsumsi layanan web SOAP di android.
** Catatan :: *** JANGAN LUPA MENAMBAHKAN ksoap2.jar dalam proyek Anda dan juga menambahkan izin INTERNET dalam file AndroidManifest *
sumber
Anda dapat melakukan panggilan sabun sebagai posting di http dengan tajuk tertentu. Saya memecahkan pertanyaan ini tanpa perpustakaan tambahan seperti ksoap2. Berikut adalah kode langsung menerima pesanan dari layanan sabun
sumber
Untuk memanggil Layanan web SOAP dari android, coba gunakan klien ini
JANGAN LUPA MENAMBAH ksoap2-android.jar di java build path Anda
sumber
Tambahkan Soap Libaray (
ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar
):public static String Fn_Confirm_CollectMoney_Approval (
sumber