私は設定変更のためにAsyncTaskLoader
がうまく動作することを認識しました。しかし、このリクエストはPOST
メソッドでも機能しますか?AsyncTask Loader Http POST/GET
私が今までに見たすべてのリクエストは、GET
のリクエストのみを示しています。サンプルコードは、パラメータの送信方法を理解し、HttpUrlConnection
とAsyncTaskLoader
を使用してPOST
リクエストを行うのに役立ちます。
私は設定変更のためにAsyncTaskLoader
がうまく動作することを認識しました。しかし、このリクエストはPOST
メソッドでも機能しますか?AsyncTask Loader Http POST/GET
私が今までに見たすべてのリクエストは、GET
のリクエストのみを示しています。サンプルコードは、パラメータの送信方法を理解し、HttpUrlConnection
とAsyncTaskLoader
を使用してPOST
リクエストを行うのに役立ちます。
下記のAsyncTaskLoaderのリンクを参照してください。 AsyncTaskLoader basic example. (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) {}
}
というジョブを実行しますが、この例は非同期タスクであり、非同期ローダーではありません。私の質問を読んでください – gorp88
は '' HttpURLConnectionのhttps://stackoverflow.com/a/29553137/3505534 – R2R
で 'AsyncTaskLoader'を使用してポスト例えばこれを試してみてください私はすでに場所にいることがありますが、私はasynctaskloaderを使用してみたいです。コメントのためには、 – gorp88
https://stackoverflow.com/questions/29552946/easy-way-to-do-post-on-httpurlconnection/29553137#29553137ですが、上の例はAsyncTaskであり、AsyncTaskLoaderではありません。 AsyncTaskは@ R2R – gorp88