|
Página 1 de 1
|
[ 2 Mensagens ] |
|
Acessando Web Service .Net com Ksoap no Android.
| Autor |
Mensagem |
|
rafaelnicolett
What is Android?
Data de registro: 04 Abr 2012, 11:14 Mensagens: 2 Localização: Sorocaba - SP
|
 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 |
|
 |
|
asltec
Android application
Data de registro: 25 Nov 2011, 08:14 Mensagens: 86
|
 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 |
|
|
|
Página 1 de 1
|
[ 2 Mensagens ] |
|
Quem está online |
Usuários vendo este fórum: Abraao, Aderbal Nunes, Adriano, akaytatsu, Alexandre de Queiroz, alexandrefett, alexandreufcg, alexmarcolongo, alineri, amarildolacerdas, andepunk, Andre, andreleitao, apoena, baudamix, bbourbon, billsombrio, BMaia, bomcabelo, brunogh, Brunohc, BrunoO, caciara, caliow, camilodev, cariabs8, Carlos Almeida, carlosavasconcelos, cassiano, celiapinheiro, cesschneider, Chewbacca, Cr-Informática, czambroni, dariosena, Darth Maul, DITÃO, dkclan, Dookan, Dudi_FC, e-azuos, eXagon, fabricioLeonard, felipedornelas, felipedsilva, flashking, Flávio Robertgo, Gabriel Laet, Gabriel Teófilo, gabrielatme, geco, glmsistemas, grandebaro, guitarro17, henrikesilva1, interservic, jacksonst, Jaison, Jango Fett, jhhm_2008, joaquimfoto, Joessi2007, johnnyjx, José Guilherme, Jota, JRSIQUEIRA, juliano, Juliobcosta, konos, leofernandesmo, Lindberg, lucastgomes, luizcarlosvb, luizcyber, Luna, madeinnordeste, mam_computer, marcelochiquinho, marcosandreao, marcow, marlovich, MauNunes, mendes_lu, miguel, mlemos, neuhaus, nfaria, nglaubervasc, nilsgome, nsansilva, Orivalde, Padawan, Patrick, paulabr, pedro, peixe, pemam.com.br, phobos, piantino, pilon, pxcx, r.wil, Rafael Alencar, rafael.winter, rbenatti, rdchaves, regeriob2br, reginaldofdias, Renan, rfrafael, rlecheta, robsonrg, rogerio.alcantara, rotmeil, rsl_master, Samantha, sasuke_sarutobi, sjta, srmoreira, taluna, tavares767, teamamus, thiagoalgo, thiagotomais, thiaguim, tiagoxv, tiasousa, tnarnold, Transtago, valaszek, vilmartr, Webnet, Wendel Carvalho, wylken, YaCy, Yoshihury, zorieuq e 7 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
|
|