Consumir WebService com KSOAP2

Alguém pode me ajudar com WebService no Android?

Já estou há 1 mês pesquisando sobre o assunto e tudo o que consegui até agora foi desenvolver um WS em Java, que realiza a consulta no MySQL e retorna os dados de Latitude e Longitude de uma tabela de locais específicos. Preciso fazer com que minha aplicação consuma o WS e coloque o retorno do WS em uma variável.

O WS retorna o seguinte dado:

ns:queryLatitudeResponse
ns:return-25.421571</ns:return>
ns:return-26.878695</ns:return>
ns:return-27.878695</ns:return>
</ns:queryLatitudeResponse>

No Android, eu tenho uma classe que é responsável por consumir o WS e ela armazena o resultado em variáveis que serão passadas por parâmetro para outra classe:

public class Conexao extends Activity {

    private static final String SOAP_ACTION = "http://localhost:8080/axis2/services/ObterGeoPointService/queryLatitude";
    private static final String METHOD_NAME = "queryLatitude";
    private static final String NAMESPACE = "http://localhost:8080/axis2/services/ObterGeoPointService";
    private static final String URL = " http://localhost:8080/axis2/services/ObterGeoPointService?wsdl";
  
   
    double lat, lon = 0;

    public Conexao() {
       
        try {
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);
            envelope.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
            androidHttpTransport.call(SOAP_ACTION, envelope);
           
            Object result = envelope.getResponse();
            String[] results = (String[]) result;
            lat =Double.parseDouble(results[0]);
            lon = Double.parseDouble(results[1]);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public double getLatitude(){
        return this.lat;
    }
    public double getLongitude(){
        return this.lon;
    }
}

O problema é que não entra no Try, cai direto no catch.

Qual o erro que é apresentado?


org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>@1:6 in java.io.InputStreamReader@3281db25) 
	at org.kxml2.io.KXmlParser.exception(Unknown Source)
	at org.kxml2.io.KXmlParser.require(Unknown Source)
	at org.ksoap2.SoapEnvelope.parse(Unknown Source)
	at org.ksoap2.transport.Transport.parseResponse(Unknown Source)
	at org.ksoap2.transport.HttpTransportSE.call(Unknown Source)
	at teste.Conexao.main(Conexao.java:28)

Eu também estou com esse mesmo erro. Debugando é possível ver que bem na linha

Alguém pode ajudar?

Tentei em outros fóruns mais nada.

Eu consegui resolver, o que estava errado eram os endereços passados nas Strings URL, NAMESPACE, etc…

Para corrigir, eu olhei o xml do wsdl:

<wsdl:definitions targetNamespace="http://com"> // este é o nome cooreto do NAMESPACE
<wsdl:documentation>ObterGeoPointService</wsdl:documentation> // este é o nome correto do 
<wsdl:types><xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://com">
<xs:element name="queryLatitude">

Veja como ficaram as declarações no meu código:

String SOAP_ACTION = "ObterGeoPointService";
		String METHOD_NAME = "queryLatitude";
		String NAMESPACE = "http://com";
		String URL = " http://localhost:8080/axis2/services/ObterGeoPointService?wsdl";

Espero que isto te ajude.

Boa noite,

Cara, meu WSDL está conforme abaixo:

[code]<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

[/code]

E minhas variáveis estão como

private static final String SOAP_ACTION = ""; private static final String METHOD_NAME = "createOrUpdateRegistro"; private static final String NAMESPACE = "http://server.soap.codelab.appengine.google.com/"; private static final String URL = "http://diabetescontrolws.appspot.com/EntityAPIService.wsdl";

Quando debugo e chega na linha androidHttpTransport.call(SOAP_ACTION, envelope); apresenta o erro:

Alguém pode me ajudar?

Estou passando por isso, pior que quando emulo do android 233, funciona quando é uma versão maior não funciona, e ocorre esse mesmo erro.