2017-04-03 11 views
-2

私は会社のAndroidアプリを開発しています。 APIに取り組んでいる間、会社の人たちは、私がボレーライブラリを使用していますが、私は、私は前にそれを行っていないので、このようなデータをポストする方法がわからない私にこのURLの形式が異なるHTTP POSTリクエスト

"app.abc.com/Login?data={"email":"abc","pwd":"123"} " 

のようなログインAPIの何かを与えました。

私はアドバイスが必要で、これが正しいかどうかを知りたがっています。

+0

これは、クエリパラメータを持つURLです。したがって、GETリクエストを実行する必要があります。 POSTではありません。 – greenapps

答えて

0

代わりのボレー..tryこれを行う--toアンドロイドネットワーキング・ライブラリーに

を使用する:あなたのGradleファイルに 'com.amitshekhar.android:android-networking:0.4.0' --compile を追加。 - バレーボールを使用してenter code here

AndroidNetworking.post("your login URL") 
       .setTag("Login") 
       .addBodyParameter("email", "abc") 
       .addBodyParameter("pwd", "123") 
       .setPriority(Priority.IMMEDIATE) 
       .build() 
       .getAsJSONObject(new JSONObjectRequestListener() { 
        @Override 
        public void onResponse(JSONObject response) { 
         try { 
          JSONObject dataJson = response.getJSONObject("data"); 
          boolean status = dataJson.getBoolean("success"); 

          } else { 
           JSONArray errorJsonArray = dataJson.getJSONArray("errors"); 
           String errorMsg; 
           for (int i = 0; i < errorJsonArray.length(); i++) { 

            errorMsg = errorJsonArray.get(i).toString(); 
            Toast.makeText(LoginActivity.this, errorMsg, Toast.LENGTH_SHORT).show(); 

           } 
           Log.e("Error", response.toString()); 


          } 


         } catch (JSONException je) { 
          je.printStackTrace(); 
         } 
        } 

        @Override 
        public void onError(ANError anError) { 


         try { 
          if (anError.getErrorBody() != null) { 
           JSONObject jsonObject = new JSONObject(anError.getErrorBody()); 
           JSONObject dataJsonObject = jsonObject.getJSONObject("data"); 
           Toast.makeText(getApplicationContext(), dataJsonObject.getString("message"), Toast.LENGTH_SHORT).show(); 
          } else { 
           Toast.makeText(getApplicationContext(), anError.getErrorDetail(), Toast.LENGTH_SHORT).show(); 

          } 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 
         Log.e("Error", anError.getErrorDetail()); 
        } 
       }); 
0

は(ボレーを使用)のように気にいらになります、そして、postRequestを作成し、要求キュー

RequestQueue queue = Volley.newRequestQueue(this); // this = context 

を作成します。

url = "app.abc.com/Login"; 
StringRequest postRequest = new StringRequest(Request.Method.POST, url, 
    new Response.Listener<String>() 
    { 
     @Override 
     public void onResponse(String response) { 
      // response 
      Log.d("Response", response); 
     } 
    }, 
    new Response.ErrorListener() 
    { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      // error 
      Log.d("Error.Response", response); 
     } 
    } 
) {  
    @Override 
    protected Map<String, String> getParams() 
    { 
      Map<String, String> params = new HashMap<String, String>(); 
      params.put("data", "{\"email\":\"abc\",\"pwd\":\"123\"}"); 
      return params; 
    } 
}; 
queue.add(postRequest); 

私はまた、レトロフィットとGSONを使用することをお勧めしますライブラリ(少し学習曲線がここにありますが、非常に強力なライブラリなので価値があります)

関連する問題