Android Web Services - kSoap

3
WebServices via Android Existem várias maneiras de realizar a conexão com WebServices via Android. Neste material utilizaremos a biblioteca kSOAP e faremos a consulta a CEPs através um serviço de consulta CEP desenvolvido em .NET. 1. Realize o download da biblioteca do kSOAP através do link: http://code.google.com/p/ksoap2-android/ 2. Crie um projeto Android no Eclipse e um AVD 3. Adicione a biblioteca do kSOAP ao projeto (copie e cole dentro do projeto e depois referencie no classpaht: botão direito --> Build Path --> Add to Build Path 4. Configure o arquivo AndroidManifest.xml para permitir acesso à Internet: <uses-permission android:name="android.permission.INTERNET" />

Transcript of Android Web Services - kSoap

Page 1: Android Web Services - kSoap

WebServices via Android

Existem várias maneiras de realizar a conexão com WebServices via Android.Neste material utilizaremos a biblioteca kSOAP e faremos a consulta a CEPs através um serviço de consulta CEP desenvolvido em .NET.

1. Realize o download da biblioteca do kSOAP através do link:

http://code.google.com/p/ksoap2-android/

2. Crie um projeto Android no Eclipse e um AVD

3. Adicione a biblioteca do kSOAP ao projeto (copie e cole dentro do projeto e depois referencie no classpaht: botão direito --> Build Path --> Add to Build Path

4. Configure o arquivo AndroidManifest.xml para permitir acesso à Internet: <uses-permission android:name="android.permission.INTERNET" />

Page 2: Android Web Services - kSoap

5. Desenvolva o layout conforme o negócio.

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" >

<EditText android:id="@+main/cep" android:maxLength="9" android:inputType="text" android:layout_width="wrap_content" android:layout_weight="0.5" android:layout_height="wrap_content" /> <Button android:id="@+main/btnConsultar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Consultar" /> </LinearLayout>

6. Desenvolva a Activity para carregar os objetos, criar os gatilhos e realizar a consulta:

package com.cep;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class ConsultaCEPWSActivity extends Activity {

private EditText cep;private Button btnConsultar;

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); carregarObjetos(); btnConsultar.setOnClickListener( new OnClickListener() {

public void onClick(View v) {ConsultaCEPWS c = new ConsultaCEPWS();String endereco = c.obterEndereco(cep.getText().toString());

AlertDialog.Builder b = new AlertDialog.Builder(ConsultaCEPWSActivity.this);b.setNeutralButton("OK", null);b.setTitle("Endereco");b.setMessage(endereco);b.show();

} });

}

private void carregarObjetos() { cep = (EditText) findViewById(R.main.cep); btnConsultar = (Button) findViewById(R.main.btnConsultar); } }

Page 3: Android Web Services - kSoap

7. Desenvolva uma classe que realize o acesso ao serviço:

package com.cep;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;public class ConsultaCEPWS {

private static final String SOAP_ACTION = "http://tempuri.org/cep";private static final String METHOD_NAME = "cep";private static final String NAMESPACE = "http://tempuri.org/";private static final String URL = "http://www.bronzebusiness.com.br/webservices/wscep.asmx";

public String obterEndereco(String cep) {String resultado = "";

SoapObject soap = new SoapObject(NAMESPACE, METHOD_NAME);soap.addProperty("strcep", cep);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.dotNet = true;envelope.setOutputSoapObject(soap);

HttpTransportSE httpTransport = new HttpTransportSE(URL);try {

httpTransport.call(SOAP_ACTION, envelope);SoapObject msg = (SoapObject) envelope.getResponse();resultado = formatar(msg.toString());

} catch (Exception e) {e.printStackTrace();

}

return resultado;}

private String formatar(String end) {String endFinal = "";endFinal = end.substring(end.indexOf("logradouro=")+11,end.indexOf("nome=")-2) + " ";endFinal += end.substring(end.indexOf("nome=")+5,end.indexOf("bairro=")-2) + ", ";endFinal += end.substring(end.indexOf("bairro=")+7,end.indexOf("UF=")-2) + " - ";endFinal += end.substring(end.indexOf("UF=")+3,end.indexOf("cidade=")-2) + " ";end = end.substring(end.indexOf("cidade="));endFinal += end.substring(end.indexOf("cidade=")+7, end.indexOf(";"));

return endFinal;}

}

8. Realize o teste: botão direito no projeto --> Run As --> Android Application