1
resposta

Problema na integração do servidor web

Amigos,

Como é sabido não é possível abrir uma conexão com servidorWeb em uma thread principal(MainThread). Seguir os passos da aula de integração do Instrutor Jeferson Silva. A minha dúvida é a seguinte, eu não estou salvando um objeto em uma lista eu simplementes faço a conversão direta para Json e envio para o servidorWeb através da Classe Webclient(Explicada no curso de integração usando androidStudio).O app consistem em preencher um formulário atráves de uma classe de cadastroCarona e pego os campos do formulário preenchido pelo o usuário e transformo em um Objeto chamado de carona(Origem,destino etc). Até aí tudo bem, eu consigo criar o objeto e converter em uma string "json""(Testado) porém eu preciso criar uma outra classe para tratar a conexão(Lembrando do problema da MainThread) que neste caso dei o nome de EnviarCaronaTask nesta classe eu abro a conexão com webserver: WebClient client = new WebClient(); e faço um post:String resposta = client.post(json); Nesta linha que estou "preso" como faço referencia ao arquivo json criado na Classe cadastroCarona, que contem o objeto criado e convertido para enviar para o servidor?


Classe CadastrarCarona:
public class CadastrarCaronaActivity extends AppCompatActivity {
    private FormularioCadastroCaronaHelper helper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cadastrar_carona);
        helper = new FormularioCadastroCaronaHelper(this);



        Button botaosalvar = (Button) findViewById(R.id.botao_cadastrar_carona);
        botaosalvar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Carona carona = helper.pegaCarona();

                CaronaConverter conversor = new CaronaConverter();
                String json = conversor.converteParaJSON(carona);
                new EnviaCaronaTask(CadastrarCaronaActivity.this).execute();



                finish();

            }
        });

Classe EnviarCaronaTask:

public class EnviaCaronaTask extends AsyncTask<Object, Object, String> {

    private Context context;

    public EnviaCaronaTask(Context context){
        this.context = context;
    }
    @Override

    protected String doInBackground(Object... params) {

        WebClient client = new WebClient();
        String resposta = client.post(json);<<<<Minha Dúvida!!!!


        return resposta;
    }

    @Override
    protected void onPostExecute(String resposta) {
        Toast.makeText(context,resposta, Toast.LENGTH_SHORT).show();

    }
}
1 resposta

Caio, tudo bem ?

Cara nesse caso como você já tem a resposta, que no caso é o json, basta você criar um conversor para ele para o objeto que você deseja.

Não entendi muito bem o problema