Portal Android - Comunidade de Desenvolvedores Android
http://www.portalandroid.org/comunidade/

Web Service ASP.NET C# comunicando com android
http://www.portalandroid.org/comunidade/viewtopic.php?f=119&t=10520
Página 1 de 1

Autor:  thiprogramador [ 22 Mai 2011, 22:33 ]
Assunto do Tópico:  Web Service ASP.NET C# comunicando com android

Pessoal só estou postando aqui o que passei o meu domingo todo para descobrir.

Vou deixar o codigo aqui para que ninguém tenha a mesma dor de cabeça que eu tive.

package br.com;

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

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class Main extends Activity {
    /** Called when the activity is first created. */

    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String METHOD_NAME = "ReturnSoma";
    private static final String SOAP_ACTION = "http://tempuri.org/ReturnSoma";
    private static final String URL = "http://10.0.2.2:80/WS.asmx";
   
    TextView texto; // Um TextView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        texto = (TextView) findViewById(R.id.result); // TextView que vai receber o valor final da soma;

        try {
            SoapObject requisicao = new SoapObject(NAMESPACE, METHOD_NAME); // Cria um SoapObject passando os parâmetros;

            requisicao.addProperty("n1", 2); // Adiciona o valor do primeiro parâmetro do web service;
            requisicao.addProperty("n2", 4); // Adiciona o valor do segundo parâmetro do web service;

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11); // Cria o envelope;
            envelope.dotNet = true; // Especifica que o web service utilizado é um .NET;
            envelope.setOutputSoapObject(requisicao); // Envia a requisição ao web service;

            HttpTransportSE http = new HttpTransportSE(URL); // Cria a comunicação com o local do web service;
            http.call(SOAP_ACTION, envelope); // Chama o web service passando o nome do NAMESPACE da aplicação ASP.NET mais o nome do metódo e o envelope;
           
            SoapPrimitive s = (SoapPrimitive) envelope.getResponse(); // Transformo a resposta em um SoapPrimitive;
            String soma = s.toString(); // Converto a resposta em uma String;
           
            texto.setText("Soma = " + soma); // Adiciono o resultado ao TextView criado e exibo na tela;

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

    }
}


Muito legal a comunicação entre uma aplicação ASP.NET com JAVA.

Autor:  edmaraaf [ 26 Mai 2011, 10:52 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Olá!

Gostaria de saber qual versão do ksoap2 vc está utilizando... pois eu desenvolvi uma aplicação com os código fonte que vc disponibilizou... mas em execução apresenta a seguinte mensagem: "The application org.me.androidwebservice(process org.me.androidwebservice) has stopped unexpectedly. Please try again". Já ocorreu esse erro para vc...

Aguardo

Edmara

Autor:  kiotto [ 04 Jun 2011, 17:46 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

thiprogramador escreveu:
Pessoal só estou postando aqui o que passei o meu domingo todo para descobrir.

Vou deixar o codigo aqui para que ninguém tenha a mesma dor de cabeça que eu tive.

package br.com;

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

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class Main extends Activity {
    /** Called when the activity is first created. */

    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String METHOD_NAME = "ReturnSoma";
    private static final String SOAP_ACTION = "http://tempuri.org/ReturnSoma";
    private static final String URL = "http://10.0.2.2:80/WS.asmx";
   
    TextView texto; // Um TextView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        texto = (TextView) findViewById(R.id.result); // TextView que vai receber o valor final da soma;

        try {
            SoapObject requisicao = new SoapObject(NAMESPACE, METHOD_NAME); // Cria um SoapObject passando os parâmetros;

            requisicao.addProperty("n1", 2); // Adiciona o valor do primeiro parâmetro do web service;
            requisicao.addProperty("n2", 4); // Adiciona o valor do segundo parâmetro do web service;

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11); // Cria o envelope;
            envelope.dotNet = true; // Especifica que o web service utilizado é um .NET;
            envelope.setOutputSoapObject(requisicao); // Envia a requisição ao web service;

            HttpTransportSE http = new HttpTransportSE(URL); // Cria a comunicação com o local do web service;
            http.call(SOAP_ACTION, envelope); // Chama o web service passando o nome do NAMESPACE da aplicação ASP.NET mais o nome do metódo e o envelope;
           
            SoapPrimitive s = (SoapPrimitive) envelope.getResponse(); // Transformo a resposta em um SoapPrimitive;
            String soma = s.toString(); // Converto a resposta em uma String;
           
            texto.setText("Soma = " + soma); // Adiciono o resultado ao TextView criado e exibo na tela;

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

    }
}


Muito legal a comunicação entre uma aplicação ASP.NET com JAVA.



Boas

Eu fiz exactamente como tu mas na parte do URL do endereço do web service tu tens um endereço IP, mas no meu caso nao consigo meter endereço IP pk o visual studio só arranca a aplicação em localhost.

Como fizeste para resolver este problema?

Cumpz

Autor:  remor [ 06 Jun 2011, 16:25 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Olá Kiotto,
o IP 10.0.2.2 no Android faz referência ao endereço localhost da máquina, então se teu Web Service estiver rodando em localhost, tu deve utilizar o ip 10.0.2.2 em seu cliente Android.

Espero ter ajudado.

Abraço
Remor

Autor:  Alexmatrix [ 22 Out 2011, 21:22 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Cara, vim agradecer sua ajuda. Também passei aqui o dia inteiro tentando fazer um client pra ws que criei com axis2.

Com seu código deu pra entender muita coisa que ainda estava com dúvida.

A única coisa que tive que mudar foi o NAMASPACE que ficou assim:

private static final String NAMESPACE = "http://servicos";  // tem que usar assim pq é padrao criado pelo axis2



Grande abraço, parabens pela iniciativa!

Agora sou usuário do forum tb :D

Autor:  jaicon [ 23 Out 2011, 22:41 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

muito bom o post... parabéns...

Autor:  fbonesso [ 24 Out 2011, 10:38 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Para quem está desenvolvendo no Android 3.0 ou superior, é necessário o seguinte código antes da execução:
ThreadPolicy threadPolicy = ThreadPolicy.LAX;
StrictMode.setThreadPolicy(threadPolicy);

Autor:  lux [ 24 Out 2011, 16:40 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Alguém sabe qual versão mínima do Android para utilizar o soap?

Autor:  f_dreamer [ 08 Nov 2011, 09:10 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Boas,

Podem-me esclarecer uma duvida?
Este projecto permite o envio de objectos entre Web Service ASP.NET C# e android sem problemas? isto é, o objecto é entendido dos dois lados sem ser necessário um protocolo de leitura especifico.

Cumps,
dreamer

Autor:  dataset [ 09 Nov 2011, 13:17 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Olá Pessoal,

Recomendo que utilizem essa versão abaixo, pois a mesma possui suporte a TimeOut.

ksoap2-android-assembly-2.5.7-jar-with-dependencies

Abs.

Autor:  f_dreamer [ 15 Nov 2011, 15:00 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Boas pessoa,

Se um web service, esta à espera de receber dois ou mais parametros envios à mesma como:

      SoapObject requisicao = new SoapObject(NAMESPACE, METHOD_NAME);
      requisicao.addProperty("n1", 2);          
      requisicao.addProperty("n2", 4);
 

ou é necessario fazelo de outra maneira???

Exemplo de metodo soma do web Service
  public int coma(int a, int b){
        return a+b;
    }

Autor:  f_dreamer [ 18 Nov 2011, 09:57 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Boas pessoal,

Ninguem me pode ajudar??

Eu fiz a pergunta anterior pk:
*quando o webservice so precisa de 1 parâmetro td funciona bem, mas
*quando o webservice necessita de 2 ou mais parâmetros o programa fica inactivo e não faz nada, como se bloqueasse.

cumps

Autor:  rodolfofernando [ 27 Dez 2011, 12:04 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

edmaraaf escreveu:
Olá!

Gostaria de saber qual versão do ksoap2 vc está utilizando... pois eu desenvolvi uma aplicação com os código fonte que vc disponibilizou... mas em execução apresenta a seguinte mensagem: "The application org.me.androidwebservice(process org.me.androidwebservice) has stopped unexpectedly. Please try again". Já ocorreu esse erro para vc...

Aguardo

Edmara


Alguém mais já teve este mesmo problema? Eu tmb estou com ele.

Thanks

Autor:  EduardoSga [ 15 Mar 2012, 19:21 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Pessoa alguém tem um exemplo passando vários valores, ou uma quantidade de dados grande?

Autor:  john_etesp [ 07 Abr 2012, 19:51 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

parabéns cara! vc salvou meu TCC =)

quebrei a cabeça por uns 10 min aqui e consegui resolver.
Vlw

Autor:  esputinik [ 08 Abr 2012, 19:01 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

é cara eu estou com o mesmo problema, da um timeout enorme!!! Fiz uma aplicação só para retornar uma string e ele fica parado sem resposta!!

package teste.testegraus;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
 
public class ConvertService {
    private static final String SOAP_ACTION = "http://servicos/Helloworld";
    private static final String METHOD_NAME = "testeHelloWorld";
    private static final String NAMESPACE = "http://servicos";  
    private static final String URL = "http://10.0.2.2:80/Axis2WSTest2/services/Helloworld?wsdl";

   
   
    public String Convert1(double Valor) {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
        HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
        try {           
            androidHttpTransport.call(NAMESPACE, envelope);
            SoapObject result = (SoapObject) envelope.getResponse();
            return result.toString();
        } catch (Exception e) {
            return e.getMessage();
        }
    }
}


o meu serviço é

package wtp;

public class Helloworld {
   
    public String testeHelloWorld () {
       
        return "HelloWorld";
    }
   
}

Autor:  Faccioni [ 14 Mai 2012, 17:42 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

thiprogramador, poderia me dar uma ajuda, estou o dia inteiro tentando fazer a comunicação com o WebService e não estou conseguindo.

Criei um WS em C# para fazer um teste, esse WS esta rodando dentro do VS e o servidor esta ativo. Quando a minha APP faz o call para o WS, ela da timeOut. Já revirei a internet e não achei nada que possa resolver meu problema.

O código da APP é esse:
public class Main extends Activity {
   
    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String METHOD_NAME = "Soma";
    private static final String SOAP_ACTION = "http://tempuri.org/Soma";
    private static final String URL = "http://10.0.2.2:60915/Cliente.asmx";   
   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
   
    // Action onClick do botão
    public void recuperar(View v){
       
        SoapObject soap = new SoapObject(NAMESPACE, METHOD_NAME);
        soap.addProperty("a", 1);
        soap.addProperty("b", 4);
       
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.implicitTypes = true;
        envelope.setOutputSoapObject(soap);
       
        HttpTransportSE httpTransport = new HttpTransportSE(URL);
       
        try {
            httpTransport.call(SOAP_ACTION, envelope);
            Object retorno = envelope.getResponse();
           
            Log.i("LynxME", "Retorno: " + retorno.toString());
           
        } catch (SoapFault e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        }
    }
}


O meu WS esta assim:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using TesteWEB.Model;

namespace TesteWEB
{
    /// <summary>
    /// Summary description for Cliente
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    // [System.Web.Script.Services.ScriptService]
    public class Cliente : System.Web.Services.WebService
    {

        private IGenericRepository _repository;

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public int Soma(int a, int b)
        {
            return a + b;
        }

        [WebMethod]
        public List<Cadastro> Cadastro (int cadastroID)
        {
            _repository = new EntityFrameworkRepository(new EverestDB());
            return _repository.GetAll<Cadastro>().Where(m => m.cd_cadastro == cadastroID).ToList();
        }
    }
}

Autor:  RaunniFerrari [ 22 Mai 2012, 17:33 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

olá, faz pouco tempo que estou programando em android, e sobre o problema do timeout, já aconteceu várias vezes comigo,
existe um tempo que caso o emulador ficar sem usar ele para de funcionar e da erro na roda de rodar uma aplicação, então
tem que reiniciar o emulador, então para aumentar o timeout vai em Windows->Preferences->Android->DDMS e aumenta
o timeout para um valor maior. Não sei se é isso, mas talvez ajude outras pessoas que teve esse mesmo problema e fica
se matando para resolver.
abraços !

Autor:  felipeaugusto [ 29 Set 2012, 00:21 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

rapazes, eu estou so uma duvida (por enquanto), vê se voces podem me ajudar..

eu não estou conseguindo entender, identificar, quais são os valores das strings do inicio do codigo. mais especificamente, o NAMESPACE, e o SOAP_ACTION.
eu chutaria, que o NAMESPACE é o nome do Solution do projeto C#, e o SOAP_ACTION é o Solution + Nome da classe. é isso?


edit: problema resolvido ja

Autor:  v1n1c1u3 [ 23 Nov 2012, 12:32 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

bom dia,

também estou tentando fazer a mesma conexão que vocês soap para webservice C#, so que da erro, alguém pode ajudar?

segue código
package br.com.android;


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

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;



public class Coletor extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.coletor);
           
        AlertDialog.Builder dialogo = new AlertDialog.Builder(Coletor.this);
        dialogo.setTitle("Produto");
        String prd;
           
        try{
            prd = getDescricao("7898150450157");
        }
        catch(Exception ex){
            prd = "vpm";
        }
        dialogo.setMessage(prd);
        dialogo.setNegativeButton("OK", null);
        dialogo.show();
    }

    public static String getDescricao(String codigo) throws Exception {
       
        String URN = "http://tempuri.org"; // Namespace do WebService
        String address = "http://128.0.0.172/meusservicos/service1.asmx"; // URL do WebService
        String methodName = "getDescricao";  // Nome do método
        String soapAction = "http://tempuri.org/getDescricao"; // Ação SOAP
       
        SoapObject request = new SoapObject(URN, methodName);
        request.addProperty("barra", codigo);
         
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);      
        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);
         
        //HttpTransportSE ht = new HttpTransportSE(address);
        //ht.debug = true;
       
        try{
            HttpTransportSE ht = new HttpTransportSE(address);
            ht.call(soapAction, envelope);
            SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
            return result.toString();
            //String result = envelope.getResponse().toString();
            //return result;
        }
        catch(Exception ex){
            return ex.getMessage();
            //return "Erro de acesso ao WebService";
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.coletor, menu);
        return true;
    }

}
 

Autor:  v1n1c1u3 [ 27 Nov 2012, 11:41 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Tem que mudar algo no emulador?

Autor:  EduardoSga [ 28 Nov 2012, 09:28 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Somente uma permissão no Manifest



    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

 


acredito que seja só esses dois.

abraço

Autor:  v1n1c1u3 [ 29 Nov 2012, 14:14 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

EduardoSga escreveu:
Somente uma permissão no Manifest



    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

 


acredito que seja só esses dois.

abraço



Obrigado pela dica.... deu certo..
grato!!!

Autor:  victorapc [ 27 Fev 2013, 13:44 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Onde ta o exemplo do Service em ASP?

Pois não sei como criar

Autor:  dino777 [ 24 Abr 2013, 16:02 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

rodolfofernando escreveu:
edmaraaf escreveu:
Olá!

Gostaria de saber qual versão do ksoap2 vc está utilizando... pois eu desenvolvi uma aplicação com os código fonte que vc disponibilizou... mas em execução apresenta a seguinte mensagem: "The application org.me.androidwebservice(process org.me.androidwebservice) has stopped unexpectedly. Please try again". Já ocorreu esse erro para vc...

Aguardo

Edmara


Alguém mais já teve este mesmo problema? Eu tmb estou com ele.

Thanks



Estou passando pelo mesmo problema alguém sabe a solução???

Autor:  allan.gaspar [ 26 Nov 2014, 12:24 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Pessoal /tt ,

não consigo fazer funcionar sempre que saio do http.call(SOAP_ACTION, envelope) da null pointer exeception ,alguem passou por isso?

Autor:  Ulisses Lima [ 28 Jul 2016, 16:34 ]
Assunto do Tópico:  Re: Web Service ASP.NET C# comunicando com android

Boa tarde!
Estou com o seguinte problema:

Tenho um Web Service feito em C# que está funcionando corretamente e me retorna um JSON.
Quando tendo acessar um método que recebe dois parâmetros tipo string, ele não está retornando nada.

Segue o código que estou utilizando:


                    try{
            String sLog = "meu_login";  // Parâmetro um
            String sSen = "minha_senha"; // Parâmetro dois
            SoapObject soap = new SoapObject(NAMESPACE,METHOD_NAME);
            soap.addProperty("sLg",sLog);
            soap.addProperty("sSn",sSen);
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
       
            envelope.setOutputSoapObject(soap);
           
            HttpTransportSE http = new HttpTransportSE(URL);
            http.call(SOAP_ACTION,envelope);
           
            SoapPrimitive s = (SoapPrimitive) envelope.getResponse();
           
            String resultado = s.toString();
 


Alguém consegue enxergar onde estou errando?

Qual a última versão do ksoap?

É possível utilizar o Volly para esse fim?

Obrigado,

Ulisses

Página 1 de 1 Todos os Horários estão como UTC - 2 horas [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/