domingo, 18 de março de 2018

WebService Soap - Matriz e objetos complexos

Ola,

Gosta de compartilhar com todos a metodologia que utilizei para realizar a comunicação de objetos complexos (Matrizes) utilizando kasoap2.

Me webservice precisa receber o seguinte padrão:











Veja que temos dois objetos do tipo complexo, jornada e horarios.

public class Jornada {
int id_jornada;
String descricao;
Collection horarios;
}

Procurei muito no google e não encontrei uma solução, inclusive em alguns foruns era dito que não tinha como fazer esta comunicação.


public static int jornada_insere(Jornada jornada) {
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        SoapObject Soap_jornada = new SoapObject();
        Soap_jornada.addProperty("id_jornada", jornada.getId_jornada());
        Soap_jornada.addProperty("descricao", jornada.getDescricao());
        for (int i = 0; i < jornada.getHorarios().size(); i++) {
            SoapObject Soap_horarios = new SoapObject();
            Soap_horarios.addProperty("id_horario", "0");
            Soap_horarios.addProperty("horario_entrada", jornada.getHorarios().get(i).getHorario_entrada());
            Soap_horarios.addProperty("horario_saida", jornada.getHorarios().get(i).getHorario_entrada());
            Soap_jornada.addProperty("horarios", Soap_horarios);
        }
        request.addProperty("jornada", Soap_jornada);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
        HttpTransportSE HttpTransport = new HttpTransportSE(URL);
        try {
            HttpTransport.call("insere_jornada", envelope);
            SoapObject resposta = (SoapObject) envelope.getResponse();
            Log.i("resposta", resposta.toString());
        } catch (Exception e) {
            Log.e("Erro", "WS Jornada", e);
            return 0;
        }
        return 1;
    }

Isso ai, espero ter ajudado, deixem seus comentários.

Nenhum comentário :

Postar um comentário