Senin, 03 September 2012

Android Client Web Service dengan KSOAP Consume WebService VB.NET (Pemrograman Android)

Ternyata Android juga Mampu mengakses Web Service. Tentu saja menggunakan Library tambahan. Dan Library itu adalah KSOAP, Library yang Sama yang Digunakan untuk Mengkoneksikan Aplikasi pada Pemrograman J2ME dengan Web Service Java, PHP maupun Visual Basic.NET atau C#.NET.

Kali ini coba kita pakai library KSOAP yang dapat didownload disini. Untuk Membuat Aplikasi Android untuk Mengkonsumsi Web Service .NET.

Pertama kita buat dahulu Web Service dengan Membuak Visual Studio, jika perlu jalankan sebagai Administrator, klik kanan Icon/Menu Visual Studio .NET, pilih Run As Administrator.

Kemudian klik File - New - Web Site, pilih ASP .NET Web Service, Pilih location HTTP atau File System, bahasa pemrograman Visual Basic. Untuk kompatibilitas bisa memilih .NET Framework 2.0 saja.


Kemudian buat method webservice sederhana, misalnya :




Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

' http//cariprogram.blogspot.com
' nuramijaya@gmail.com

<WebService(Namespace:="http://tempuri.org/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function HelloWorld() As String
        Return "Hello World"
    End Function

    <WebMethod()> _
    Public Function Tambah(ByVal a As String, ByVal b As String) As String
        Return CStr(Val(a) + Val(b))
    End Function

End Class



Jalankan Web Service, Klik F5 :


Catat / Copy URLnya. Kemudian Tes web service, klik tambah :


Masukkan input angka, klik Invoke :


Hasilnya akan keluar :


Kemudian kita buka Eclipse, Klik File - New Android Project. Masukkan Parameter Seperti di Bawah ini. Klik Finish.


Akan digenerate sebuah Project Android baru :


Kemudian pada Project TreeView sebelah kiri. Klik kanan nama Project, pilih Properties :


Kemudian pilih Java Build Path. Pilih Tab Libraries. Klik Add External JARs :


Pilih file KSOAP yang telah didownload yaitu ksoap2-android-assembly-2.4-jar-with-dependencies.jar. Klik Open :


Kemudian buka desain tampilan pada res/layout/main.xml, tambahkan satu buah TextView01.



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<TextView android:text="---" android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</LinearLayout>




Setelah itu buka Program Utama di MainActivity.java. Masukkan kode program berikut ini :


package com.amijaya.androidwebserviceclient;

// cariprogram.blogspot.com
// nuamijaya@gmail.com

import android.app.Activity;
import android.os.Bundle;

import android.widget.TextView;
import android.widget.Toast;

import org.ksoap2.*;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.AndroidHttpTransport;
public class MainActivity extends Activity {
    /** Called when the activity is first created. */
String SOAP_ACTION="http://tempuri.org/Tambah"; 
String METHOD_NAME = "Tambah";  
String NAMESPACE = "http://tempuri.org/"; 
String URL = "http://192.168.43.150/wsandroid/Service.asmx";

TextView tv; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        tv = (TextView)findViewById(R.id.TextView01); 
        
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
        String a = "3"; 
        String b = "5"; 
        
        request.addProperty("a",a);
        request.addProperty("b",b); 
        
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
        
        envelope.dotNet = true;
        
        envelope.setOutputSoapObject(request); 
        
        AndroidHttpTransport aht = new AndroidHttpTransport(URL); 
        
        try 
        { 
        aht.call(SOAP_ACTION, envelope); 
       
        SoapPrimitive results = (SoapPrimitive)envelope.getResponse(); 
       
        tv.setText("Tambah : a + b = " + a + " + " + b + " = " + results.toString()); 
        } 
        catch (Exception e) 
        { 
        Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
        e.printStackTrace(); 
        }
    }
}



Jangan lupa buka AndroidManifest.xml : Tambahkan permission Internet sebagai berikut :


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.amijaya.androidwebserviceclient"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>



Untuk mencoba dengan Laptop / PC dan HP / Tablet Android, hubungkan keduanya via Wireless Network, atau Tethering. Kemudian cek IP Address yang didapatkan di PC / Laptop dengan perintah DOS, Start - Run -> cmd. Ketikkan ipconfig :


Kemudian jangan lupa dicoba URL web service menggunakan IP Address tersebut untuk membuktikan bahwa Web Service bisa diakses lewat Komputer / Device lain :


URL yang ada pada kode program Android juga merupakan URL dari PC /Laptop yang digunakan debagai server Web Service :


Untuk lebih pasti nya ketikkan URL Web Service tersebut lewat Web Browser di Device Android :


Jalankan Aplikasi Web Service Client Android yang telah dibuat. Jika masih muncul Error seperti ini, kemungkinan Web Service belum terhubung, atau anda lupa memberikan Baris Program berikut ini, karena Web Service .NET mempunyai bentuk khusus :


envelope.dotNet = true;



Jika sudah bisa berjalan dan terhubung dengan benar ke Web Service. Hasilnya :


Project selengkapnya silakan download disini. Di Google Docs, klik File Download

Semoga bermanfaat.

Feedback : nuramijaya@gmail.com