How To Call Web Service With SOAP Celsiu
2014
How To Call Web
Service With SOAP
Celsius – Fahrenheit Calculators
PEMROGRAMAN APLIKASI MOBILE
Disusun Oleh :
1. Titis Nur Pratomo (11.11.4932)
2. Mahfudz Nasrulloh (11.11.4947)
STMIK AMIKOM YOGYAKARTA
How To Call Web Service With SOAP 2014
1. Penjelasan Metode SOAP
SOAP adalah singkatan dari Simple Object Access Protocol, merupakan sebuah protokol
komunikasi client server yang mengirim dan menerima informasi "di atas HTTP". Data yang
dikirim dan diterima dalam format XML. SOAP hampir sama dengan protokol XMLRP, hanya
saja SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client-server.
Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML. SOAP merupakan
mekanisme lain yang memungkinkan penggunaan remote procedure call. SOAP bersifat netral
platform, netral bahasa dan tidak bergantung pada suatu objek model. Sehingga SOAP-enabled
distributed application dapat menjangkau beragam operating sistem, dimana terdiri dari objek
yang berasal dari vendor yang berbeda, ditulis pada bahasa yang berbeda, dan didasarkan pada
objek model yang berbeda.
SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai
vendor TI – dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada
sebelumnya dan sudah banyak digunakan. Misalnya untuk protokol transport, yang paling
banyak digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol
transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak
diragukan lagi manfaat dan perannya di dalam pertukaran data. Dengan demikian, tidaklah
terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi penyelamat untuk mengatasi
berbagai masalah yang dihadapi oleh teknologi – teknologi pendahulunya.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
1
How To Call Web Service With SOAP 2014
1.1 Skema SOAP Web Service
Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body
(required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut
diproses. Hal ini meliputi pe-routingan dan delivery setting, authentication atau authorization
assertions, and transaction contexts. Body berisi pesan sebenarnya yang dikirim dan diproses.
Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam pesan body.
Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi
sebanyak mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen
Body ditentukan dalam suatu cara dimana dapat berisi valid dan wellformed XML yang telah
dibatasi oleh suatu namespace (qualified).
Jika sebuah Envelope berisi elemen Header, harus berisi tidak lebih dari satu, dan harus
tampak pada first child dari Envelope, sebelum elemen Body. Header dapat berisi valid, wellformed, dan dibatasi dengan namespace XML dimana hendak dimasukkan oleh pencipta pesan
SOAP.
Setiap elemen yang berada dalam Header disebut blok header. Tujuan dari blok header
adalah untuk memberitahukan infomasi yang berhubungan dengan pemrosesan pesan SOAP.
Berikut gambar posisi SOAP dalam aplikasi dan contoh struktur pesan SOAP :
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
2
How To Call Web Service With SOAP 2014
Keuntungan SOAP
o
bahasa, platform, dan transport agnostic
o
dirancang untuk menangani lingkungan komputasi terdistribusi
o
merupakan standar yang berlaku untuk web servis, sehingga mempunyai dukungan yang
lebih baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor
o
built-in error handling (faults)
o
extensibility
Kelemahan SOAP
o
secara konseptual lebih sulit, lebih "heavy-weight" dibanding REST
o
lebih "verbose" (membutuhkan lebih banyak pernyataan/kode program)
o
sulit untuk dikembangkan, mebutuhkan tools
2. STUDI KASUS : KALKULATOR CELSIUS – FAHRENHEIT MENGGUNAKAN
SOAP
Langkah 1: Pertama membuat "Proyek Baru Android". Nama itu "WebServiceDemo" seperti di
bawah ini.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
3
How To Call Web Service With SOAP 2014
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
4
How To Call Web Service With SOAP 2014
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
5
How To Call Web Service With SOAP 2014
Langkah 2:
Sekarang klik kanan pada proyek "WebServiceDemo" dan pilih "New -> Folder"
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
6
How To Call Web Service With SOAP 2014
Sekarang, memberikan nama "lib". Kita perlu menambahkan sebuah SOAP library ke dalam
direktori ini.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
7
How To Call Web Service With SOAP 2014
Langkah 3:
Sekarang download library bernama "kSoap2-android-assembly-2.6.0-jar-dengandependencies.jar". Salin file itu dan paste ke dalam "lib" direktori.
Setelah menyalin, lakukan langkah- langkah berikut:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
8
How To Call Web Service With SOAP 2014
Klik kanan pada proyek.
Go "Build Path -> Configure Build Path"
3. Sekarang, klik "Add Jars" dan pilih "jar." File dari "proyek -> lib" direktori.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
9
How To Call Web Service With SOAP 2014
4. Klik "Ok" untuk menyelesaikan prosedur menambahkan library untuk aplikasi Android.
Langkah 4:
Selanjutnya kita perlu membuat tata letak layar. Untuk melakukannya, pergi ke
"WebServiceDemo -> res -> layout -> main.xml"
Buka file xml ini dalam mode editing, dan tempat di bawah kode.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
10
How To Call Web Service With SOAP 2014
Main.xml
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
11
How To Call Web Service With SOAP 2014
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
13
How To Call Web Service With SOAP 2014
Akan muncul tampilan seperti ini :
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
14
How To Call Web Service With SOAP 2014
Langkah 5:
Sekarang, cari tahu setiap Layanan Web, pastikan bahwa Anda dapat melihat file WSDL-nya
dengan menulis "? Wsdl" setelah alamat tersebut.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
15
How To Call Web Service With SOAP 2014
Misalnya, Anda memiliki layanan web seperti
http://www.w3schools.com/webservices/tempconvert.asmx ", sehingga untuk melihat file
WSDL, hanya menulis" wsdl "setelah alamat ini seperti:
http://www.w3schools.com/webservices/tempconvert.asmx?WSDL ".
Anda sekarang dilakukan dengan bagian Layanan Web dari internet. Sekarang Anda perlu untuk
memperpanjang beberapa bagian dari file WSDL. Buka link pertama di browser Anda, maka
akan muncul 2 konversi untuk Anda:
CelsiusToFahrenheit
FahrenheitToCelsius
Pilih siapa pun dari mereka, dan Anda akan melihat layar berikut:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
16
How To Call Web Service With SOAP 2014
Untuk CelsiusToFahrenheit:
1. SOAP_ACTION = "http://tempuri.org/CelsiusToFahrenheit";
2. NAMESPACE = "http://tempuri.org/";
3. METHOD_NAME = "CelsiusToFahrenheit";
4. URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
17
How To Call Web Service With SOAP 2014
Untuk FahrenheitToCelsius:
1. SOAP_ACTION = "http://tempuri.org/FahrenheitToCelsius";
2. NAMESPACE = "http://tempuri.org/";
3. METHOD_NAME = " FahrenheitToCelsius ";
4. URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
Langkah 6:
Anda perlu memahami beberapa kelas sebelum melanjutkan untuk menggunakan Web
Service.
1. SoapObject (
Sebuah objek dinamis sederhana yang dapat digunakan untuk membangun SOAP
panggilan tanpa menerapkan KvmSerializable. Pada dasarnya, ini adalah apa yang terjadi di
dalam tubuh amplop SOAP - itu adalah subelement langsung dari tubuh dan semua sub unsur
lanjut. Alih-alih kelas ini, kelas kustom dapat digunakan jika mereka mengimplementasikan
antarmuka KvmSerializable.
Constructor :
SoapObject (java.lang.String namespace, metode java.lang.String)
2. SoapSerializationEnvelope
Kelas ini memperluas SoapEnvelope dengan fungsi Sabun serialisasi.
Constructor:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
18
How To Call Web Service With SOAP 2014
SoapSerializationEnvelope (int versi)
Fields:
Type
Field
Description
boolean
dotNet
Set this variable to true for compatibility with what seems
to be the default encoding for .Net-Services.
Methods
Return Method Name
Description
Type
void
setOutputSoapObject(java.lang.Object soapObject) Assigns the object to
envelope
as
the
the
outbound
message for the soap call.
3. HttpTransportSE (org.ksoap2.transport.HttpTransportSE)
A J2SE based HttpTransport layer.
Constructor:
HttpTransportSE(java.lang.String url)
Method:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
19
How To Call Web Service With SOAP 2014
Return Type
Method
Description
void
call(java.lang.String SoapAction, SoapEnvelope envelope)
set
the
soapAction
field
Langkah 7 :
Buka "WebServiceDemo -> src -> WebServiceDemoActivity.java" file dan masukkan data
berikut :
WebServiceDemoActivity.java
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class WebServiceDemoActivity extends Activity
{
/** Called when the activity is first created. */
private static String SOAP_ACTION1 = "http://tempuri.org/FahrenheitToCelsius";
private static String SOAP_ACTION2 = "http://tempuri.org/CelsiusToFahrenheit";
private static String NAMESPACE = "http://tempuri.org/";
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
20
desired
header
How To Call Web Service With SOAP 2014
private static String METHOD_NAME1 = "FahrenheitToCelsius";
private static String METHOD_NAME2 = "CelsiusToFahrenheit";
private static String URL = "http://www.w3schools.com/webservices/tempconvert.asmx?W
SDL";
Button btnFar,btnCel,btnClear;
EditText txtFar,txtCel;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main );
btnFar = (Button)findViewById(R.id.btnFar );
btnCel = (Button)findViewById(R.id.btnCel);
btnClear = (Button)findViewById(R.id.btnClear );
txtFar = (EditText)findViewById(R.id.txtFar );
txtCel = (EditText)findViewById(R.id.txtCel);
btnFar.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//Initialize soap request + add parameters
SoapObject request = new SoapObject(NAMESPACE , METHOD_NAME1 );
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
21
How To Call Web Service With SOAP 2014
//Use this to add parameters
request.addProperty("Fahrenheit",txtFar.getText().toString());
//Declare the version of the SOAP request
SoapSerializationEnvelope envelope
= new SoapSerializationEnvelope(SoapEnvelope. VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(U RL);
//this is the actual part that will call the webservice
androidHttpTransport.call(SOAP_ACTION1, envelope);
// Get the SoapResult from the envelope body.
SoapObject result = (SoapObject)envelope.bodyIn;
if(result != null)
{
//Get the first property and change the label text
txtCel.setText(result.getProperty(0).toString());
}
else
{
Toast.makeText (getApplicationContext(), "No
Response",Toast.LENGTH_LONG ).show();
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
22
How To Call Web Service With SOAP 2014
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
btnCel.setOnClickListener(ne w View.OnClickListener()
{
@Override
public void onClick(View v)
{
//Initialize soap request + add parameters
SoapObject request = new SoapObject(NAMESPACE , METHOD_NAME2 );
//Use this to add parameters
request.addProperty("Celsius",txtCel.getText().toString());
//Declare the version of the SOAP request
SoapSerializationEnvelope envelope
= new SoapSerializationEnvelope(SoapEnvelope. VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(U RL);
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
23
How To Call Web Service With SOAP 2014
//this is the actual part that will call the webservice
androidHttpTransport.call(SOAP_ACTION2, envelope);
// Get the SoapResult from the envelope body.
SoapObject result = (SoapObject)envelope.bodyIn;
if(result != null)
{
//Get the first property and change the label text
txtFar.setText(result.getProperty(0).toString());
}
else
{
Toast.makeText (getApplicationContext(), "No
Response",Toast.LENGTH_LONG ).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
btnClear.setOnClickListener(ne w View.OnClickListener()
{
@Override
public void onClick(View v)
{
txtCel.setText("");
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
24
How To Call Web Service With SOAP 2014
txtFar.setText("");
}
});
}
}
Langkah 8 :
Selanjutnya , buka “WebServiceDemo -> android.manifest” file. Tambahkan baris
sebelum tag : Untuk mengijinkan aplikasi ini apabila menggunakan internet.
Langkah 9 :
Jalankan aplikasi ini di Android Cell.
NB : pada emulator , harus membutuhkan proxy yang fix, jadi coba aplikasi ini pada Android
Cell.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
25
How To Call Web Service With SOAP 2014
Kesimpulan :
Pada tutorial ini mempelajari tentang Web Services , SOAP Envelopes, WSDL Files,
HTTP transport, dan penerapan SOAP Web Service pada aplikasi android.
Debugging :
1. Jika ditemukan permasalahan pada eclipse “No Class Found” maka ikuti cara seperti dibawah
ini :
Klik kanan “project” -> Properties -> Java Build Path -> Order And Explort
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
26
How To Call Web Service With SOAP 2014
Sekarang cek pada add external jar dan pastikan jar yang terinstall harus sesuai. Jika sesuai
jalankan project.
2. Cara untuk setting konfigurasi proxy ketika menggunakan emulator.
Langkah 1:
Klik kanan “project” -> Run As -> Run Configuration
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
27
How To Call Web Service With SOAP 2014
Proxy -> IP addres internet yang digunakan
Port -> gunakan setting default 8080
Lalu klik “Apply”
Jalankan kembali aplikasi ini.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
28
How To Call Web
Service With SOAP
Celsius – Fahrenheit Calculators
PEMROGRAMAN APLIKASI MOBILE
Disusun Oleh :
1. Titis Nur Pratomo (11.11.4932)
2. Mahfudz Nasrulloh (11.11.4947)
STMIK AMIKOM YOGYAKARTA
How To Call Web Service With SOAP 2014
1. Penjelasan Metode SOAP
SOAP adalah singkatan dari Simple Object Access Protocol, merupakan sebuah protokol
komunikasi client server yang mengirim dan menerima informasi "di atas HTTP". Data yang
dikirim dan diterima dalam format XML. SOAP hampir sama dengan protokol XMLRP, hanya
saja SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client-server.
Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML. SOAP merupakan
mekanisme lain yang memungkinkan penggunaan remote procedure call. SOAP bersifat netral
platform, netral bahasa dan tidak bergantung pada suatu objek model. Sehingga SOAP-enabled
distributed application dapat menjangkau beragam operating sistem, dimana terdiri dari objek
yang berasal dari vendor yang berbeda, ditulis pada bahasa yang berbeda, dan didasarkan pada
objek model yang berbeda.
SOAP menjadi sangat mudah diterima oleh berbagai pihak – terutama oleh berbagai
vendor TI – dikarenakan protokol ini memanfaatkan berbagai teknologi yang sudah ada
sebelumnya dan sudah banyak digunakan. Misalnya untuk protokol transport, yang paling
banyak digunakan adalah HTTP, walaupun dimungkinkan untuk menggunakan protokol
transport lainnya. Sedangkan untuk format data atau message digunakan XML yang tidak
diragukan lagi manfaat dan perannya di dalam pertukaran data. Dengan demikian, tidaklah
terlalu mengherankan bila kemudian SOAP dianggap sebagai solusi penyelamat untuk mengatasi
berbagai masalah yang dihadapi oleh teknologi – teknologi pendahulunya.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
1
How To Call Web Service With SOAP 2014
1.1 Skema SOAP Web Service
Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body
(required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut
diproses. Hal ini meliputi pe-routingan dan delivery setting, authentication atau authorization
assertions, and transaction contexts. Body berisi pesan sebenarnya yang dikirim dan diproses.
Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam pesan body.
Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi
sebanyak mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen
Body ditentukan dalam suatu cara dimana dapat berisi valid dan wellformed XML yang telah
dibatasi oleh suatu namespace (qualified).
Jika sebuah Envelope berisi elemen Header, harus berisi tidak lebih dari satu, dan harus
tampak pada first child dari Envelope, sebelum elemen Body. Header dapat berisi valid, wellformed, dan dibatasi dengan namespace XML dimana hendak dimasukkan oleh pencipta pesan
SOAP.
Setiap elemen yang berada dalam Header disebut blok header. Tujuan dari blok header
adalah untuk memberitahukan infomasi yang berhubungan dengan pemrosesan pesan SOAP.
Berikut gambar posisi SOAP dalam aplikasi dan contoh struktur pesan SOAP :
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
2
How To Call Web Service With SOAP 2014
Keuntungan SOAP
o
bahasa, platform, dan transport agnostic
o
dirancang untuk menangani lingkungan komputasi terdistribusi
o
merupakan standar yang berlaku untuk web servis, sehingga mempunyai dukungan yang
lebih baik dari standar yang lain (WSDL, WS-*) dan tools dari berbagai vendor
o
built-in error handling (faults)
o
extensibility
Kelemahan SOAP
o
secara konseptual lebih sulit, lebih "heavy-weight" dibanding REST
o
lebih "verbose" (membutuhkan lebih banyak pernyataan/kode program)
o
sulit untuk dikembangkan, mebutuhkan tools
2. STUDI KASUS : KALKULATOR CELSIUS – FAHRENHEIT MENGGUNAKAN
SOAP
Langkah 1: Pertama membuat "Proyek Baru Android". Nama itu "WebServiceDemo" seperti di
bawah ini.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
3
How To Call Web Service With SOAP 2014
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
4
How To Call Web Service With SOAP 2014
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
5
How To Call Web Service With SOAP 2014
Langkah 2:
Sekarang klik kanan pada proyek "WebServiceDemo" dan pilih "New -> Folder"
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
6
How To Call Web Service With SOAP 2014
Sekarang, memberikan nama "lib". Kita perlu menambahkan sebuah SOAP library ke dalam
direktori ini.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
7
How To Call Web Service With SOAP 2014
Langkah 3:
Sekarang download library bernama "kSoap2-android-assembly-2.6.0-jar-dengandependencies.jar". Salin file itu dan paste ke dalam "lib" direktori.
Setelah menyalin, lakukan langkah- langkah berikut:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
8
How To Call Web Service With SOAP 2014
Klik kanan pada proyek.
Go "Build Path -> Configure Build Path"
3. Sekarang, klik "Add Jars" dan pilih "jar." File dari "proyek -> lib" direktori.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
9
How To Call Web Service With SOAP 2014
4. Klik "Ok" untuk menyelesaikan prosedur menambahkan library untuk aplikasi Android.
Langkah 4:
Selanjutnya kita perlu membuat tata letak layar. Untuk melakukannya, pergi ke
"WebServiceDemo -> res -> layout -> main.xml"
Buka file xml ini dalam mode editing, dan tempat di bawah kode.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
10
How To Call Web Service With SOAP 2014
Main.xml
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
11
How To Call Web Service With SOAP 2014
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
13
How To Call Web Service With SOAP 2014
Akan muncul tampilan seperti ini :
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
14
How To Call Web Service With SOAP 2014
Langkah 5:
Sekarang, cari tahu setiap Layanan Web, pastikan bahwa Anda dapat melihat file WSDL-nya
dengan menulis "? Wsdl" setelah alamat tersebut.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
15
How To Call Web Service With SOAP 2014
Misalnya, Anda memiliki layanan web seperti
http://www.w3schools.com/webservices/tempconvert.asmx ", sehingga untuk melihat file
WSDL, hanya menulis" wsdl "setelah alamat ini seperti:
http://www.w3schools.com/webservices/tempconvert.asmx?WSDL ".
Anda sekarang dilakukan dengan bagian Layanan Web dari internet. Sekarang Anda perlu untuk
memperpanjang beberapa bagian dari file WSDL. Buka link pertama di browser Anda, maka
akan muncul 2 konversi untuk Anda:
CelsiusToFahrenheit
FahrenheitToCelsius
Pilih siapa pun dari mereka, dan Anda akan melihat layar berikut:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
16
How To Call Web Service With SOAP 2014
Untuk CelsiusToFahrenheit:
1. SOAP_ACTION = "http://tempuri.org/CelsiusToFahrenheit";
2. NAMESPACE = "http://tempuri.org/";
3. METHOD_NAME = "CelsiusToFahrenheit";
4. URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
17
How To Call Web Service With SOAP 2014
Untuk FahrenheitToCelsius:
1. SOAP_ACTION = "http://tempuri.org/FahrenheitToCelsius";
2. NAMESPACE = "http://tempuri.org/";
3. METHOD_NAME = " FahrenheitToCelsius ";
4. URL = "http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
Langkah 6:
Anda perlu memahami beberapa kelas sebelum melanjutkan untuk menggunakan Web
Service.
1. SoapObject (
Sebuah objek dinamis sederhana yang dapat digunakan untuk membangun SOAP
panggilan tanpa menerapkan KvmSerializable. Pada dasarnya, ini adalah apa yang terjadi di
dalam tubuh amplop SOAP - itu adalah subelement langsung dari tubuh dan semua sub unsur
lanjut. Alih-alih kelas ini, kelas kustom dapat digunakan jika mereka mengimplementasikan
antarmuka KvmSerializable.
Constructor :
SoapObject (java.lang.String namespace, metode java.lang.String)
2. SoapSerializationEnvelope
Kelas ini memperluas SoapEnvelope dengan fungsi Sabun serialisasi.
Constructor:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
18
How To Call Web Service With SOAP 2014
SoapSerializationEnvelope (int versi)
Fields:
Type
Field
Description
boolean
dotNet
Set this variable to true for compatibility with what seems
to be the default encoding for .Net-Services.
Methods
Return Method Name
Description
Type
void
setOutputSoapObject(java.lang.Object soapObject) Assigns the object to
envelope
as
the
the
outbound
message for the soap call.
3. HttpTransportSE (org.ksoap2.transport.HttpTransportSE)
A J2SE based HttpTransport layer.
Constructor:
HttpTransportSE(java.lang.String url)
Method:
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
19
How To Call Web Service With SOAP 2014
Return Type
Method
Description
void
call(java.lang.String SoapAction, SoapEnvelope envelope)
set
the
soapAction
field
Langkah 7 :
Buka "WebServiceDemo -> src -> WebServiceDemoActivity.java" file dan masukkan data
berikut :
WebServiceDemoActivity.java
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class WebServiceDemoActivity extends Activity
{
/** Called when the activity is first created. */
private static String SOAP_ACTION1 = "http://tempuri.org/FahrenheitToCelsius";
private static String SOAP_ACTION2 = "http://tempuri.org/CelsiusToFahrenheit";
private static String NAMESPACE = "http://tempuri.org/";
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
20
desired
header
How To Call Web Service With SOAP 2014
private static String METHOD_NAME1 = "FahrenheitToCelsius";
private static String METHOD_NAME2 = "CelsiusToFahrenheit";
private static String URL = "http://www.w3schools.com/webservices/tempconvert.asmx?W
SDL";
Button btnFar,btnCel,btnClear;
EditText txtFar,txtCel;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main );
btnFar = (Button)findViewById(R.id.btnFar );
btnCel = (Button)findViewById(R.id.btnCel);
btnClear = (Button)findViewById(R.id.btnClear );
txtFar = (EditText)findViewById(R.id.txtFar );
txtCel = (EditText)findViewById(R.id.txtCel);
btnFar.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//Initialize soap request + add parameters
SoapObject request = new SoapObject(NAMESPACE , METHOD_NAME1 );
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
21
How To Call Web Service With SOAP 2014
//Use this to add parameters
request.addProperty("Fahrenheit",txtFar.getText().toString());
//Declare the version of the SOAP request
SoapSerializationEnvelope envelope
= new SoapSerializationEnvelope(SoapEnvelope. VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(U RL);
//this is the actual part that will call the webservice
androidHttpTransport.call(SOAP_ACTION1, envelope);
// Get the SoapResult from the envelope body.
SoapObject result = (SoapObject)envelope.bodyIn;
if(result != null)
{
//Get the first property and change the label text
txtCel.setText(result.getProperty(0).toString());
}
else
{
Toast.makeText (getApplicationContext(), "No
Response",Toast.LENGTH_LONG ).show();
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
22
How To Call Web Service With SOAP 2014
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
btnCel.setOnClickListener(ne w View.OnClickListener()
{
@Override
public void onClick(View v)
{
//Initialize soap request + add parameters
SoapObject request = new SoapObject(NAMESPACE , METHOD_NAME2 );
//Use this to add parameters
request.addProperty("Celsius",txtCel.getText().toString());
//Declare the version of the SOAP request
SoapSerializationEnvelope envelope
= new SoapSerializationEnvelope(SoapEnvelope. VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try {
HttpTransportSE androidHttpTransport = new HttpTransportSE(U RL);
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
23
How To Call Web Service With SOAP 2014
//this is the actual part that will call the webservice
androidHttpTransport.call(SOAP_ACTION2, envelope);
// Get the SoapResult from the envelope body.
SoapObject result = (SoapObject)envelope.bodyIn;
if(result != null)
{
//Get the first property and change the label text
txtFar.setText(result.getProperty(0).toString());
}
else
{
Toast.makeText (getApplicationContext(), "No
Response",Toast.LENGTH_LONG ).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
btnClear.setOnClickListener(ne w View.OnClickListener()
{
@Override
public void onClick(View v)
{
txtCel.setText("");
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
24
How To Call Web Service With SOAP 2014
txtFar.setText("");
}
});
}
}
Langkah 8 :
Selanjutnya , buka “WebServiceDemo -> android.manifest” file. Tambahkan baris
sebelum tag : Untuk mengijinkan aplikasi ini apabila menggunakan internet.
Langkah 9 :
Jalankan aplikasi ini di Android Cell.
NB : pada emulator , harus membutuhkan proxy yang fix, jadi coba aplikasi ini pada Android
Cell.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
25
How To Call Web Service With SOAP 2014
Kesimpulan :
Pada tutorial ini mempelajari tentang Web Services , SOAP Envelopes, WSDL Files,
HTTP transport, dan penerapan SOAP Web Service pada aplikasi android.
Debugging :
1. Jika ditemukan permasalahan pada eclipse “No Class Found” maka ikuti cara seperti dibawah
ini :
Klik kanan “project” -> Properties -> Java Build Path -> Order And Explort
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
26
How To Call Web Service With SOAP 2014
Sekarang cek pada add external jar dan pastikan jar yang terinstall harus sesuai. Jika sesuai
jalankan project.
2. Cara untuk setting konfigurasi proxy ketika menggunakan emulator.
Langkah 1:
Klik kanan “project” -> Run As -> Run Configuration
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
27
How To Call Web Service With SOAP 2014
Proxy -> IP addres internet yang digunakan
Port -> gunakan setting default 8080
Lalu klik “Apply”
Jalankan kembali aplikasi ini.
Pemrograman Aplikasi Mobile | Celsius – Fahrenheit Calculators With SOAP
28