Android Web Service

4 respostas
R

Boa Tarde, sou iniciante no android e estou criando uma aplicação com conexão a um Web Service, no qual estou com um problema, fiz a aplicação e todos os testes pelo simulador e tudo funcionou perfeitamente, sendo que ao compilar o projeto para .APK e instala-lo no celular o mesmo dá erro na string de conexão com o Web Service, Abaixo a classe de conexão com o Web Service

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

public class Stage0 {
	private static final String SOAP_ACTION = "http://temuri.org/VerificaCartao";
	private static final String METHOD_NAME = "VerificaCartao";
	private static final String NAMESPACE = "http://temuri.org";
	private static final String URL = "http://10.1.9.226/PDV/Service1.asmx";

	public Cliente VerificaCartao(String cartao){
		Cliente cliente = new Cliente();
		
		SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);
		request.addProperty("cartao", cartao);
		
		SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);		
		envelope.dotNet = true;
		envelope.setOutputSoapObject(request);
		try{
[b]			HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);[/b]
			androidHttpTransport.call(SOAP_ACTION, envelope);
		    SoapObject result = (SoapObject) envelope.getResponse();
			cliente.setCd_cli(result.getProperty(0).toString());
			cliente.setNm_cli(result.getProperty(1).toString());
			cliente.setCd_atn(result.getProperty(2).toString());
			cliente.setResp("True");
			return cliente;
		}catch(Exception e) {
			//Log.e("pdv", e.getMessage());
			e.getMessage();
			cliente.setResp(e.getMessage());
			return cliente ;
		}
	}
}

O erro ficaria na linha do Http Transporte

OBS: Adicionei as permissões abaixo:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>

4 Respostas

R

olha no logcat e posta o erro.

R

Agora eu vi o prq do seu erro:

No emulador vc usa esse endereço para acessar algum serviço que está na sua máquina,mas quando for testar no seu smartphone vc tem que mudar para o endereço ip ou o DNS da sua maquina na sua rede wi-fi,exemplo :

Fazendo isso vai funcionar a sua aplicação.

R

desculpa, não entendi, aqui ambos estão na mesma rede, e o computador esta com ip fixo, e se tento acessar o caminho pelo navegador do celular ele abre normalmente, só não acessa pela aplicação

rodrigo_ror

private static final String SOAP_ACTION = "http://temuri.org/VerificaCartao"; private static final String METHOD_NAME = "VerificaCartao"; private static final String NAMESPACE = "http://temuri.org";

Não sei porque e também não procurei saber, mas sempre que acesso webservice DOTNET se estiver errado o namespace não funciona:
eu uso esse nome:

Mude também no soapAction e veja se funciona. Abraços

Criado 14 de janeiro de 2013
Ultima resposta 1 de fev. de 2013
Respostas 4
Participantes 3