E aí pessoal! Beleza?
Estou tentando consumir o WebService via SOAP, estou usando um biblioteca chamada KSOAP. Na classe que estou fazendo a conexão com o WebService, está acontecendo um erro quando faço o for preenchendo meu SoapObject com o retorno que teve. Segue abaixo o código.
Retorno do webservice:
<status xsi:type="xsd:int">1</status>
<erro_code xsi:type="xsd:int">0</erro_code>
<erro_desc xsi:type="xsd:string"/>
<result xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:DebitosPendentes[26]">
<item xsi:type="tns:DebitosPendentes">
<Vencimento xsi:type="xsd:string">2018-04-10</Vencimento>
<ValorAtualizado xsi:type="xsd:decimal">29.92</ValorAtualizado>
<Valor xsi:type="xsd:decimal">29.92</Valor>
<Sequencia xsi:type="xsd:string">9999</Sequencia>
<NroBanco xsi:type="xsd:int">9999</NroBanco>
<BcoCobr xsi:type="xsd:string">Banco</BcoCobr>
<Cobranca xsi:type="xsd:string">Boleto</Cobranca>
<Itens xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:ListaItens[2]">
<item xsi:type="tns:ListaItens">
<Descricao xsi:type="xsd:string">Contrato</Descricao>
<ValorItem xsi:type="xsd:decimal">9.97</ValorItem>
</item>
<item xsi:type="tns:ListaItens">
<Descricao xsi:type="xsd:string">Contrato</Descricao>
<ValorItem xsi:type="xsd:decimal">19.95</ValorItem>
</item>
</Itens>
</item>
<item xsi:type="tns:DebitosPendentes">
<Vencimento xsi:type="xsd:string">2018-03-10</Vencimento>
<ValorAtualizado xsi:type="xsd:decimal">29.92</ValorAtualizado>
<Valor xsi:type="xsd:decimal">29.92</Valor>
<Sequencia xsi:type="xsd:string">9999</Sequencia>
<NroBanco xsi:type="xsd:int">9999</NroBanco>
<BcoCobr xsi:type="xsd:string">Banco</BcoCobr>
<Cobranca xsi:type="xsd:string">Boleto</Cobranca>
<Itens xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="tns:ListaItens[2]">
<item xsi:type="tns:ListaItens">
<Descricao xsi:type="xsd:string">Contrato</Descricao>
<ValorItem xsi:type="xsd:decimal">9.97</ValorItem>
</item>
<item xsi:type="tns:ListaItens">
<Descricao xsi:type="xsd:string">Contrato</Descricao>
<ValorItem xsi:type="xsd:decimal">19.95</ValorItem>
</item>
</Itens>
</item>
Classe que faz a requisição para o WebService e pega o retorno:
public void buscarDebitos()
throws IOException, XmlPullParserException {
//Namespace e nome para o objeto SOAP
SoapObject requestLoginCentral = new SoapObject(NAMESPACE, METHOD_NAME);
SoapObject requestAutenticacao = new SoapObject(NAMESPACE, METHOD_NAME_AUTENTICACAO);
SoapObject requestDadosLogin = new SoapObject(NAMESPACE, METHOD_NAME_DADOS);
//Adiciona os parametros para a autenticação
requestAutenticacao.addProperty("ChaveIntegracao", chave);
//Adiciona os parametros para os dados do usuario
requestDadosLogin.addProperty("CodigoCliente", codigoCliente1);
//Adiciona os parametros para o login central
requestLoginCentral.addProperty(METHOD_NAME_AUTENTICACAO, requestAutenticacao);
requestLoginCentral.addProperty(METHOD_NAME_DADOS, requestDadosLogin);
//Cria o envelope com o objeto SOAP
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.addMapping(NAMESPACE, "LoginCentralResponse", Object.class);
envelope.setOutputSoapObject(requestLoginCentral);
Log.d(TAG, "Chamado Web Service: " + URL);
//Cria o HttpTransport para enviar os dados (soap)
HttpTransportSE httpTransport = new DebitosPendentesHttpTransport(URL);
httpTransport.debug = true;
//HttpTransportSE httpTransport = new HttpTransportSE(URL);
KvmSerializable response = null;
try {
httpTransport.call(NAMESPACE, envelope); //Conecta e envia o objeto
response = (KvmSerializable) envelope.bodyIn; //recebe o resultado do web service. Um array de Objetos
Log.d("teste", "response: " + response);
} catch (Exception e) {
e.printStackTrace();
}
if(response!=null) {
SoapObject [] pontos = new SoapObject[response.getPropertyCount()];
for (int i = 0; i < response.getPropertyCount(); i++) {
pontos[i] = (SoapObject) response.getProperty(i);
Log.d("teste", "pontos: " + pontos[i]);
}
}
}
Erro: