2017-06-30 19 views
0

thisのようなhttp取得要求を実装しました。android-http post request design

基本的に私はメインアクティビティにフラグメントを追加しました。 フラグメントは、http取得要求が実装されたAsyncTaskオブジェクトを集約しました。

私は今すぐhttp投稿要求を送信したいと思います。 この問題を解決するにはどうすればよいでしょうか?

別のAsyncTaskオブジェクトを同じフラグメントに追加しますか? 別のフラグメントを追加しますか?

ありがとうございます!

+1

たぶんhttp://square.github.io/okhttp/ OkHTTPライブラリがHTTPリクエストであなたを助けています。あなたの質問に直接答えは出ていませんが、httpリクエストがより簡単になります。 – PhilipB

+1

答えはありません、多分、ボレーを試してみませんか? https://developer.android.com/training/volley/index.html – ImAtWar

+1

レトロフィットについてはどうですか? –

答えて

1

Volley Android Networking Libraryを使用してデータを送信できます。公式文書はhere

StringRequest stringRequest = new StringRequest(Request.Method.POST, "Url", 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Log.i(TAG, "Response Object: " + response.toString()); 

         // Hide Progress Dialog 
         PG.hideProgressDialog(pg); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         VolleyLog.d(TAG, "Error: " + error.getMessage()); 
         // Hide Progress Dialog 
         PG.hideProgressDialog(pg); 
        } 
       }) { 
      @Override 
      protected Map<String, String> getParams() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("username", strEmail); 
       params.put("password", strPassword); 
       params.put("deviceType", "ANDROID"); 
       params.put("deviceToken", fireBaseToken); 
       Log.d(TAG, params.toString()); 
       return params; 
      } 

     }; 
     stringRequest.setRetryPolicy(new DefaultRetryPolicy(5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     MyApplication.getApp().addToRequestQueue(stringRequest, tag_json_obj);