KSoap - send object

0

I have a Web Service that in the request, has the following structure:

<?xml version="1.0" encoding="utf-8"?"
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
   <_USUAR>STRING</_USUAR>
   <_SENHA>STRING</_SENHA>
   <_APONTAMENTO>
      <CODCLI>STRING</CODCLI>
      <DATA>STRING</DATA>
      <VEND>STRING</VEND>
      <COM>STRING</COM>
   </_APONTAMENTO>
   <_TIPOOP>STRING</_TIPOOP>
</soap:Body>
</soap:Envelope>

I can not send the data, it is returning the following error: WEBSERVICE ERROR: Argument Missing: Required field CODCLI not found.

Follow the code below:

  public ArrayList<String> salvaApontamento(Apontamento apontamento, String usuario, String senha){
    ArrayList<String> retorno = new ArrayList<>();   
        SoapObject _APONTAMENTO = new SoapObject(NAMESPACE, "_APONTAMENTO");
        _APONTAMENTO.addProperty("DATA", apontamento.getData());
        _APONTAMENTO.addProperty("VEND", apontamento.getVendedor());
        _APONTAMENTO.addProperty("CODCLI", apontamento.getCliente());
        _APONTAMENTO.addProperty("COM", apontamento.getComentario()); 

        //criando o request para enviar ao webservice
        SoapObject manutencaoApontamento = new SoapObject(NAMESPACE,METODOMANUTENCAO);

        manutencaoApontamento.addProperty("_USUAR", usuario);
        manutencaoApontamento.addProperty("_SENHA", senha);
        manutencaoApontamento.addProperty("_APONTAMENTO",_APONTAMENTO);

        SoapSerEnv envelope = new SoapSerEnv(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(manutencaoApontamento);

        HttpTransportSE http = new HttpTransportSE(URL);

        try {

            http.call(METODOMANUTENCAO,envelope);
            SoapObject resposta = (SoapObject) envelope.getResponse();
            String mensagem = resposta.getPrimitiveProperty("CMENSAGEM").toString();
            String confirma = resposta.getPrimitiveProperty("CCONFIRMA").toString();
            retorno.add(confirma);
            retorno.add(mensagem);
            Log.i("APONTAMENTOXX", "Mensagem - " + mensagem);

        } catch (Exception e){
            Log.i("APONTAMENTOXX", "Mensagem - " +e.getMessage());
            retorno.add("NAO");
            retorno.add(e.getMessage());
        }

        return retorno;
    }


}

In my opinion, I'm not sure how to send the internal values of _APONTAMENTO, such as CODCLI, DATA, ...

    
asked by anonymous 18.11.2018 / 15:03

0 answers