@fanhypermax

Как передать параметры в doInBackground?

Sender handler = new Sender();
            FormBody.Builder params= new FormBody.Builder();
            params.add("param1", "val");
            params.add("param2", "val");
            result = handler.execute("https://domain.ru/",params).get();


Как сделать чтобы arg[0] был url , а arg[1] были параметры ?

public class Sender extends AsyncTask<String, FormBody.Builder, String> {
    private static final OkHttpClient client = new OkHttpClient();

        protected String doInBackground(String... arg) {

            try {

                RequestBody formBody = arg[1].build();

                Request request = new Request.Builder()

                        .url(arg[0])
                        .post(formBody)
                        .build();

                Response response = client.newCall(request).execute();

                return response.body().string();

            } catch (Exception e) {
                e.printStackTrace();
            }
            return "fail";
        }
}
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 1
RATlius
@RATlius
Разработчик Android
В Вашем случае Вы не правильно объявляете класс. Он должен быть у Вас как
public class Sender extends AsyncTask<String, Void, String>

Эта картинка поможет Вам разобраться как работает AsyncTask
5bee7fa98048f650054032.png

И эта статья
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы