0

私は設定変更のためにAsyncTaskLoaderがうまく動作することを認識しました。しかし、このリクエストはPOSTメソッドでも機能しますか?AsyncTask Loader Http POST/GET

私が今までに見たすべてのリクエストは、GETのリクエストのみを示しています。サンプルコードは、パラメータの送信方法を理解し、HttpUrlConnectionAsyncTaskLoaderを使用してPOSTリクエストを行うのに役立ちます。

+0

は '' HttpURLConnectionのhttps://stackoverflow.com/a/29553137/3505534 – R2R

+0

で 'AsyncTaskLoader'を使用してポスト例えばこれを試してみてください私はすでに場所にいることがありますが、私はasynctaskloaderを使用してみたいです。コメントのためには、 – gorp88

+0

https://stackoverflow.com/questions/29552946/easy-way-to-do-post-on-httpurlconnection/29553137#29553137ですが、上の例はAsyncTaskであり、AsyncTaskLoaderではありません。 AsyncTaskは@ R2R – gorp88

答えて

0

下記の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) {} 
     } 
+0

というジョブを実行しますが、この例は非同期タスクであり、非同期ローダーではありません。私の質問を読んでください – gorp88