2016-03-21 24 views
1

私はバレーボールの要求を取得し、JSONを取得するためのコードの下に使用します。ボレーエラー:予期しない応答コード400

JsonObjectRequest jsonReq = new JsonObjectRequest(Request.Method.POST, 
       service_address , null, new Response.Listener<JSONObject>() { 

      @Override 
      public void onResponse(JSONObject response) { 
       VolleyLog.d(TAG, "Response: " + response.toString()); 
       if (response != null) { 
        parseJsonFeed(response); 
       } 
      } 
     }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
      } 
     }){ 


      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<String, String>(); 
       params.put("username", username); 
       params.put("password", password); 

       return params; 
      } 

      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       Map<String,String> params = new HashMap<String, String>(); 
       // Removed this line if you dont need it or Use application/json 
       // params.put("Content-Type", "application/x-www-form-urlencoded"); 
       return params; 
      } 
     }; 

しかしlogcatで、それは私にこのエラーが発生します実行後:

BasicNetwork.performRequest: Unexpected response code 400 

私はthis linkを読みますしかし、それは私を助けません。私はとても混乱しているので、私のコードに何が間違っていますか?

+0

あなたはHTTPSのような他のソースからのリクエスト送信しようとしたことがあり:// WWWを。 hurl.it/ –

+0

@DennisvanOpstal私はVolleyなしでこのサービスを使い、それは正常に機能しました – serenei

+0

@DennisvanOpstal私はhurl.itで私のアドレスをテストして、私に404を与えます!私は苦労して苦労しています – serenei

答えて

2

私は、これは任意の助けであるが、ここで私は私のログイン要求のためにバレーボールを使用する方法であるかどうかわからないんだけど:

/** 
* Method that checks given user credentials with the ones in the online DB 
* @param v the view that activated this method 
*/ 
public void logIn(View v) { 
    final String email = String.valueOf(((EditText) findViewById(R.id.inputEmail)).getText()); 
    final String password = String.valueOf(((EditText) findViewById(R.id.inputPassword)).getText()); 

    String tag_string_req = "string_req"; 
    final String TAG = AppController.class 
      .getSimpleName(); 
    String url = "http://android.diggin.io/diggin/v1/login"; 
    StringRequest strReq = new StringRequest(Request.Method.POST, 
      url, new Response.Listener<String>() { 

     @Override 
     public void onResponse(String response) { 
      Log.d(TAG, response); 
      try { 
       final JSONObject jsonObject = new JSONObject(response); 
       if (!jsonObject.getBoolean("error")) { 
        apiKey = jsonObject.getString("apiKey"); 
        SharedPreferences sharedPref = getSharedPreferences(getString(R.string.apiKey), Context.MODE_PRIVATE); 
        SharedPreferences.Editor editor = sharedPref.edit(); 
        editor.putString(getString(R.string.apiKey), apiKey); 
        editor.commit(); 
        refreshApiKey(); 
       } else { 
        //Send message when something goes wrong 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          AlertDialog.Builder dlgAlert = new AlertDialog.Builder(LoginActivity.this); 
          try { 
           dlgAlert.setMessage(jsonObject.getString("message")); 
          } catch (JSONException e) { 
           dlgAlert.setMessage("Something went wrong, please try again"); 
          } 
          dlgAlert.setPositiveButton("OK", null); 
          dlgAlert.setCancelable(true); 
          dlgAlert.create().show(); 
         } 
        }); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
      //Send message when something goes wrong 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        AlertDialog.Builder dlgAlert = new AlertDialog.Builder(LoginActivity.this); 
        dlgAlert.setMessage("Error while logging in, please try again"); 
        dlgAlert.setPositiveButton("OK", null); 
        dlgAlert.setCancelable(true); 
        dlgAlert.create().show(); 
       } 
      }); 
     } 
    }) { 

     @Override 
     protected Map<String, String> getParams() { 
      Map<String, String> params = new HashMap<>(); 
      params.put("email", email); 
      params.put("password", password); 

      return params; 
     } 
    }; 

    // Adding request to request queue 
    AppController.getInstance().addToRequestQueue(strReq, tag_string_req); 
} 
+0

私のサービスはあなたのコードとうまく機能しますが、このサイトのhurl.itとはうまく動作しません!問題? – serenei

+0

すべてのパラメータとヘッダーを正しく入力してください。そうでなければ、サイトのエラーをチェックできます。ほとんどの場合、間違っている箇所が表示されます。 –

+0

以下の回答を確認してください – serenei

関連する問題