AsyncTask Loader Http POST/GET

Я понял, что для изменения конфигурации AsyncTaskLoader работает лучше. Но этот запрос также работает для POST метод.

Все запросы, которые я видел до сих пор, показывают только GET запрос. Пример кода поможет мне понять, как отправить параметры и сделать POST запрос с использованием HttpUrlConnection а также AsyncTaskLoader,

1 ответ

Ссылка ниже для AsyncTaskLoader. AsyncTaskLoader базовый пример. (Android)

Вы можете использовать AsyncTask. Проверьте ниже ссылочный код.

private class LongOperation extends AsyncTask<String, Void, String> {

            @Override
            protected String doInBackground(String... params) {

URL url = new URL("http://url.com");
                HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
                conn.setReadTimeout(10000);
                conn.setConnectTimeout(15000);
                conn.setRequestMethod("POST");
                conn.setDoInput(true);
                conn.setDoOutput(true);

                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("param1", paramValue1));
                params.add(new BasicNameValuePair("param2", paramValue2));
                params.add(new BasicNameValuePair("param3", paramValue3));

                OutputStream os = conn.getOutputStream();
                BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8"));
                writer.write(getQuery(params));
                writer.flush();
                writer.close();
                os.close();

                conn.connect();
            }

    private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException
    {
        StringBuilder result = new StringBuilder();
        boolean first = true;

        for (NameValuePair pair : params)
        {
            if (first)
                first = false;
            else
                result.append("&");

            result.append(URLEncoder.encode(pair.getName(), "UTF-8"));
            result.append("=");
            result.append(URLEncoder.encode(pair.getValue(), "UTF-8"));
        }

        return result.toString();
    }

            @Override
            protected void onPostExecute(String result) {
               if(!TextUtils.isEmpty(result)){
                   // Do your work
               }
            }

            @Override
            protected void onPreExecute() {}

            @Override
            protected void onProgressUpdate(Void... values) {}
        }
Другие вопросы по тегам