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