Ver mensagens sem resposta | Ver tópicos ativos Hoje é 18 Jun 2013, 03:52



Responder Tópico  [ 2 Mensagens ] 
 Acessando Web Service .Net com Ksoap no Android. 
Autor Mensagem
What is Android?
What is Android?

Data de registro: 04 Abr 2012, 11:14
Mensagens: 2
Localização: Sorocaba - SP
Mensagem Acessando Web Service .Net com Ksoap no Android.
Boa tarde Galera, pesquisando pela web por muito tempo, com uma certa dificuldade, consegui fazer com que o Android consumisse um WebService .Net que retorna uma lista de objetos.
Aqui explicarei um simples tutorial que ressalta como recuperar esta lista de objetos do webservice e setar na lista de objetos no Android.

Abaixo o resultado do retorno do WebService :
<ArrayOfMLUsuarios xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<MLUsuarios>
<id>1</id>
<Nome>admin</Nome>
</MLUsuarios>
<MLUsuarios>
<id>3</id>
<Nome>edivaldo</Nome>
</MLUsuarios>
<MLUsuarios>
<id>4</id>
<Nome>fernanda</Nome>
</MLUsuarios>
<MLUsuarios>
<id>5</id>
<Nome>gesiele.sales</Nome>
</MLUsuarios>
<MLUsuarios>
<id>6</id>
<Nome>guilherme.custodio</Nome>
</MLUsuarios>
<MLUsuarios>
<id>7</id>
<Nome>rafael.nicoleti</Nome>
</MLUsuarios>
<MLUsuarios>
<id>9</id>
<Nome>wesley.matos</Nome>
</MLUsuarios>
<MLUsuarios>
<id>12</id>
<Nome>fatima.custodio</Nome>
</MLUsuarios>
<MLUsuarios>
<id>13</id>
<Nome>clovis.custodio</Nome>
</MLUsuarios>
<MLUsuarios>
<id>14</id>
<Nome>alfredo.martins</Nome>
</MLUsuarios>
<MLUsuarios>
<id>15</id>
<Nome>juliano.laureano</Nome>
</MLUsuarios>
<MLUsuarios>
<id>16</id>
<Nome>andressa.fulan</Nome>
</MLUsuarios>
<MLUsuarios>
<id>17</id>
<Nome>kelly.almeida</Nome>
</MLUsuarios>
<MLUsuarios>
<id>18</id>
<Nome>andre.takushi</Nome>
</MLUsuarios>
<MLUsuarios>
<id>19</id>
<Nome>evaldo.oliveira</Nome>
</MLUsuarios>
<MLUsuarios>
<id>20</id>
<Nome>davi.dias</Nome>
</MLUsuarios>
<MLUsuarios>
<id>21</id>
<Nome>philip.nascimento</Nome>
</MLUsuarios>
<MLUsuarios>
<id>22</id>
<Nome>rose.cleris</Nome>
</MLUsuarios>
<MLUsuarios>
<id>23</id>
<Nome>enok.vieira</Nome>
</MLUsuarios>
<MLUsuarios>
<id>24</id>
<Nome>marcos.vinicius</Nome>
</MLUsuarios>
<MLUsuarios>
<id>26</id>
<Nome>lucia.ikeda</Nome>
</MLUsuarios>
<MLUsuarios>
<id>29</id>
<Nome>vanessa.fatori</Nome>
</MLUsuarios>
<MLUsuarios>
<id>30</id>
<Nome>romulo.silva</Nome>
</MLUsuarios>
<MLUsuarios>
<id>31</id>
<Nome>mariane.souza</Nome>
</MLUsuarios>
<MLUsuarios>
<id>32</id>
<Nome>cristiane.nascimento</Nome>
</MLUsuarios>
<MLUsuarios>
<id>33</id>
<Nome>jhony.dalcin</Nome>
</MLUsuarios>
<MLUsuarios>
<id>34</id>
<Nome>daniel.boas</Nome>
</MLUsuarios>
<MLUsuarios>
<id>35</id>
<Nome>alan.amaral</Nome>
</MLUsuarios>
<MLUsuarios>
<id>36</id>
<Nome>andre.ladeira</Nome>
</MLUsuarios>
<MLUsuarios>
<id>37</id>
<Nome>rafael.bazzo</Nome>
</MLUsuarios>
<MLUsuarios>
<id>38</id>
<Nome>eletrica</Nome>
</MLUsuarios>
<MLUsuarios>
<id>39</id>
<Nome>felipe.freitas</Nome>
</MLUsuarios>
<MLUsuarios>
<id>40</id>
<Nome>fernanda.galvao</Nome>
</MLUsuarios>
<MLUsuarios>
<id>41</id>
<Nome>john.lenon</Nome>
</MLUsuarios>
<MLUsuarios>
<id>42</id>
<Nome>renato.souza</Nome>
</MLUsuarios>
<MLUsuarios>
<id>43</id>
<Nome>silvia.rocha</Nome>
</MLUsuarios>
</ArrayOfMLUsuarios>


Como vimos acima, o resultado do Webservice retorna vários usuários de uma determinada tabela no banco de dados SQL Server.
O exemplo em si foi divido em 3 classes, uma classe de Objetos Usuários que contém os Get e Set, uma classe de ListActivity para listar os usuários, e uma classe de acesso ao WebService.

Classe Objeto usuários:

public class Usuarios {

    private String id;
    private String Nome;
   
    public Usuarios() {
    }
 
    public Usuarios(String id, String nome) {
        this.id = id;
        this.Nome = nome;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNome() {
        return Nome;
    }

    public void setNome(String nome) {
        Nome = nome;
    }
}
 


A classe de objetos de Usuários é uma classe de encapsulamento, com ela criaremos uma lista de objetos do tipo Usuários e colocaremos o resultado do Wbservice.

Classe de comunicação com WebService :

import java.util.ArrayList;
import java.util.List;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;


public class WebServiceKSoap  {
    private final String NAMESPACE = "http://tempuri.org/";
    private final String METHOD_NAME = "ReturnList";
    private final String SOAP_ACTION = "http://tempuri.org/ReturnList";
    private final String URL = "http://000.000.00.000/SampleService/Service.asmx";
    List<Usuarios> lista = new ArrayList<Usuarios>();
   
    public List<Usuarios> ListarUsuarios()
    {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
       
        HttpTransportSE httpRequest = new HttpTransportSE(URL);
   
        try
        {            
            httpRequest.call(SOAP_ACTION, envelope);
            SoapObject response = (SoapObject)envelope.getResponse();
            for(int i = 0; i < response.getPropertyCount(); i++){
                SoapObject objSoap = (SoapObject)response.getProperty(i);
                Usuarios objUsuarios = new Usuarios(objSoap.getProperty(0).toString(), objSoap.getProperty(1).toString());
                lista.add(objUsuarios);
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        //return handlerParseUsuarios.getLista();
        return lista;
    }
}


Está classe é responsável de se conectar com o Webservice , ler seus dados, e adicionar a lista de objetos Usuários do Android.
Obs: Os enderenços do Webservice são meramente exemplos, para que tu possa usar um webservice deve criar um com Visual Studio .Net, ou outra plataforma, que não é o caso deste tutorial.

Agora veremos a classe de ListActivity a qual é responsável por ler todos os usuários da lista objetos usuários :

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.SimpleAdapter;

public class ListarUsuarios extends ListActivity {

    WebServiceKSoap webService = new WebServiceKSoap();
    List<Usuarios> lstUsuarios = new ArrayList<Usuarios>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        ListarUsuariosWebService();
    }
   
    private void ListarUsuariosWebService(){
        try{
           
            lstUsuarios = webService.ListarUsuarios();
            List<Map<String, String>> listaHashMap = convertListaEmHashmap();
           
            String[] from = {"id", "nome"};
            int[] to = { android.R.id.text1, android.R.id.text2 };
           
            SimpleAdapter adpt = new SimpleAdapter(this, listaHashMap, android.R.layout.simple_list_item_2, from, to);
            setListAdapter(adpt);
        }catch (Exception e) {
            // TODO: handle exception
            mensagemExibir("Usuários", "Erro ao listar usuários : " + e);
        }
        }
   
    private List<Map<String, String>> convertListaEmHashmap(){
        List<Map<String, String>> lista = new ArrayList<Map<String,String>>();
        for(int i = 0; i < lstUsuarios.size(); i++){
            Map<String, String> map = new HashMap<String, String>();
            map.put("id", lstUsuarios.get(i).getId());
            map.put("nome", lstUsuarios.get(i).getNome());
            lista.add(map);
        }
        return lista;
    }
   
        private void mensagemExibir(String titulo, String texto)
    {
        AlertDialog.Builder mensagem = new AlertDialog.Builder(this);
        mensagem.setTitle(titulo);
        mensagem.setMessage(texto);
        mensagem.setNeutralButton("OK",null);
        mensagem.show();
    }

}
 


Nesta classe perceba que trabalho com HashMap, para que possa criar um lista personalizado no Android e setar tanto o ID como o nome do usuários na lista.

Bom pessoal, este é meu primeiro tutorial, qualquer dúvida ou sugestão postem ai galera.

Obrigado a todos.


19 Abr 2012, 15:43
Perfil
Android application
Android application

Data de registro: 25 Nov 2011, 08:14
Mensagens: 88
Mensagem Re: Acessando Web Service .Net com Ksoap no Android.
Boa tarde Rafael,

Muito legal o seu tutorial.
Eu também tenho um webservice em .net e uma aplicaçao android consumindo esse ws.
Eu consigo trazer os dados do ws e exibir em uma listView, eu preciso pegar esses dados do meu ws e inserir no banco android.
Voce ja fez isso?


15 Ago 2012, 12:54
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 2 Mensagens ] 

Quem está online

Usuários vendo este fórum: Alexandre Castro, alexandreizumi, alexsander.miranda, andepunk, andrelom, andreluzz, Arthas, Bass, BloggerCaOS, bocajunior88, boydivalor, bravus, brunogh, brunomalka, BrunoO, camilodev, cariabs8, Carlos, cassiano, cassianotartari, Cassius, cavenaghi, Celso Jr., cfranca, Chewbacca, china, Christiane, chunga, ciro, cleber, cleiton_maciel, criscmaia, Cristranus, Damiani Oliveira, Danilo Dias, Darkluna, darllan.marinho, Dassi, developermaster, Diego, Diego Otani, difrene, dikiloco, dkclan, dmd, Dookan, Dorpho, dr.faro, edlinux, Eneias, erissi, estratec, Felipe, Felipe Ferreira, fernandofsf, flaviolemos, Flávio Robertgo, furlanrapha, Geire Robson Gadelha, geovanebg, germanno, gfgodoy, grandebaro, guiba_picolino, HanNiBaLSeTDf, helder, henrikesilva1, hopper.frf, interservic, ismavolk, JackBlackJack, jacquesbica, jandersonjc, Jar Jar Binks, jcdeveloper, José Guilherme, Jota, jrchuteboxe, jrsilva, JuniorE, juniorsk8, jzaires, Legiao, Leonardo, lhdiassilva, LordElfo, lucianno, luciano.sml, lucianoedipo, luizfilipe, maximilianjx, mcroft, memnoch, Michel, Microdesk, monteirojp, nakahara, nsansilva, o-raposa, oliverlessa, On_7, otpor, Padawan, pamonteiro, paulosantos, Portal Android, Rafael Alencar, rafael.cioban, rcotonet, rerp7, retardad0, Roberto, robsonrg, Rodrigo, rodrigo_corinthians, rogeriopgomes, romulotales, schiroky, SERGIO RODRIGUES, Shinigami, sidnei.gs, slackware, suissa, thosjanas, Toks, ton.soares, tonical, Topeca, unnamedd, VIEIRIX, wcaciano, wilsond, WiseNut, wylken e 2 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi