Android Web Services - kSoap
-
Upload
jefferson-marques -
Category
Documents
-
view
281 -
download
0
Transcript of 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" />
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); } }
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