Ver mensagens sem resposta | Ver tópicos ativos Hoje é 14 Nov 2019, 02:46



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

Data de registro: 04 Abr 2012, 12: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, 16:43
Perfil
Anatomy of an App
Anatomy of an App

Data de registro: 25 Nov 2011, 09:14
Mensagens: 120
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, 13:54
Perfil
What is Android?
What is Android?

Data de registro: 19 Set 2013, 23:27
Mensagens: 1
Mensagem Re: Acessando Web Service .Net com Ksoap no Android.
Boa noite rafaelnicolett,

Estou um problema com o KSOAP2.
Seguinte estou desenvolvendo uma aplicação Android e preciso consumir um Web Service feito em C#, que em retorna em JSON. Estou tentando utilizar a biblioteca KSOAP2, porém um determinado método deste Web Service aguarda como parâmetro um objeto e uma string qualquer, algo parecido com logarUsuario(User user, String chave);

Já tentei de várias formas passar um objeto para este métodos, não obtive sucesso até o momento. A comunicação esta sendo feita, pois o método em questão me retorna uma mensagem que requisição é inválida, ele retorna isso pelo fato de não receber o objeto.

OBS: Realizei um teste chamando este WS usando C# funcionou corretamente.

Alguém pode me dizer se é realmente possível ou o KSOAP2 não nos permite enviar objetos para métodos de um WS?

Segue uma das tentativas que eu realize:
       SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        LoginEnvio lo = new LoginEnvio();
        lo.setEmail("meu@gmail.com");
        lo.setSenha("1234556");

        PropertyInfo propInfo = new PropertyInfo();
        propInfo.setName("LoginEnvio");
        propInfo.setType(LoginEnvio.class);
        propInfo.setValue(true);
        request.addProperty(propInfo);


19 Set 2013, 23:36
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 3 Mensagens ] 

Quem está online

Usuários vendo este fórum: (_FM_), ac0502, Alan Unger, alineri, allone, Anakin Skywalker, arilsonm, arkanjo, arquivo51, azero, Bass, bomcabelo, btminzon, C0GuM3I0, caliow, Cassius, Catapan, celson, cenatech, chunga, cosmotheoro, dallari, Damiani Oliveira, Dassi, Deiapinh, dikiloco, diogeneskelsen, dmd, drjunior, Eduardo, Erik Patekoski, erikopa, erosvaldo, estratec, euguns, Felipe Ferreira, felipecomp19, flaviolemos, francismarconcini, free_w3000, furlanrapha, geco, guiba_picolino, gutem25, gutodias, hostdesigner, Idelto, ismaels, jacksonst, jackstuard, jhonguitar, jhou, Jless@, juliana_costa, Juliobcosta, juliomar, kecyobarros, lazarodm, Leonardo333, lfirpo, lucianoalves, Lucious, luiz.lago, luizcyber, m4v0, Marcelo Lima, marcelochiquinho, marcelorferrari, marcosrogel, martins, maurofjr, maximilianjx, Maxtremus, mcurtis, mmiottobarbosa, mrangel, neuhaus, nina.rm, Nute Gunray, osternack, otpor, pamonteiro, Patrick, piagg, pxcx, ricdigital, rmendes, rogeriokta, rogeriopgomes, rosano, rsl_master, ScoobyGB, sergio, silvio.carlos, suportecr, thiago@xbrain.com.br, Tiago Sousa Roch, tiagocomerio, Tognoli, Toks, tonical, tonylock, vandob, vieira, viniciusgoncalves, Webnet, WiseNut, xikin, XPTO e 1 visitante


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:
cron

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi