quinta-feira, 9 de abril de 2015

Android: AsyncTask - WebService Request using KSOAP

public class PesquisarFuncionarioRequest extends AsyncTask {

    Activity activity;
    private boolean completed;
    private Object _response;

    public PesquisarFuncionarioRequest(Activity activity){
        this.activity = activity;
    }


    @Override
    protected Object doInBackground(PesquisarFuncionarioParams... params) {
        Response mensagem = new Response(REQUEST_PesquisarFuncionario);
        Funcionario funcionario = new Funcionario();

        PesquisarFuncionarioParams oparams =  params[0];
        Response responseAutenticar = new AutenticarRequest(this.activity).getAutenticar(oparams.autenticar);

        if(responseAutenticar.Object!=null){
            if(oparams.Operation!=null && !oparams.Operation.equals(Constants.STRING_VAZIA))
                mensagem.Operation = oparams.Operation;

            SoapObject request = new SoapObject(NAMESPACE, "PesquisarFuncionario");
            Autenticar autenticar = (Autenticar) responseAutenticar.Object;
            request.addProperty("CriptografiaChaveAcesso", autenticar.CriptografiaChaveAcesso);

            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.setOutputSoapObject(request);
            try {
                HttpTransportSE androidHttpTransport = CriaObjetoTransportSE();
                androidHttpTransport.call(NAMESPACE + "PesquisarFuncionario", envelope);
                if (envelope.getResponse()!=null) {
                    funcionario=new Funcionario((SoapObject)envelope.getResponse());
                }

            } catch (Exception e) {
                mensagem.Error = true;
                mensagem.Description=e.getMessage();
            }
            mensagem.Object= funcionario;
            ((Funcionario)mensagem.Object).LoginUsuario = oparams.autenticar.LoginUsuario;
            return mensagem;
        }
        else {
            responseAutenticar.Category = mensagem.Category;
            return responseAutenticar;
        }
    }
    @Override
    protected void onPreExecute()
    {

    }
    @Override
    protected void onPostExecute(Object _response){
        completed = true;
        this._response = _response;
        notifyActivityTaskCompleted();
    }

    private void notifyActivityTaskCompleted()
    {
        if ( null != activity ) {
            ((IResponse)activity).onResponse((Response) _response);
        }
    }
    public void setActivity(Activity activity)
    {
        this.activity = activity;
        if ( completed ) {
            notifyActivityTaskCompleted();
        }
    }



}
Postar um comentário