私はVolleyライブラリを使用していますが、予期しない応答コード400の問題があります。ユーザー名とパスワードからログインしようとしていますが、com.android.volley.ServerErrorに直面しています。予期しない応答コード400ですか?
ログインクラス
public class Login extends AppCompatActivity implements View.OnClickListener {
EditText userName, Password;
Button login;
public static final String LOGIN_URL = "http://192.168.0.106:84/Token";
public static final String KEY_USERNAME = "UserName";
public static final String KEY_PASSWORD = "Password";
String username, password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
userName = (EditText) findViewById(R.id.login_name);
Password = (EditText) findViewById(R.id.login_password);
userName.setHint(Html.fromHtml("<font color='#008b8b' style='italic'>Username</font>"));
Password.setHint(Html.fromHtml("<font color='#008b8b'>Password</font>"));
login = (Button) findViewById(R.id.login);
login.setOnClickListener(this);
}
private void UserLogin() {
username = userName.getText().toString().trim();
password = Password.getText().toString().trim();
StringRequest stringRequest = new StringRequest(com.android.volley.Request.Method.POST, LOGIN_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.trim().equals("success")) {
openProfile();
} else {
Toast.makeText(Login.this, response, Toast.LENGTH_LONG).show();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(Login.this, error.toString(), Toast.LENGTH_LONG).show();
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/x-www-form-urlencoded");
params.put("Charset", "UTF-8");
return params;
}
@Override
public Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_USERNAME, username);
map.put(KEY_PASSWORD, password);
return map;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void openProfile() {
Intent intent = new Intent(this, Home.class);
intent.putExtra(KEY_USERNAME, username);
startActivity(intent);
}
@Override
public void onClick(View v) {
UserLogin();
}
public String getBodyContentType() {
return "application/xml";
}
}
どのようにこの問題を解決することができますか?
ヘッダーを削除した後、私はこれを得ました。 [![[1]]ここに画像の説明を入力します] [1]
まさかを試してみてくださいエラー。ヘッダーをパラメータに追加していますが、これは間違っています。 –
エラーコード400は、不正な要求を意味します。サーバー側で必要なデータの種類を確認します。 – Piyush
@Robby getHeaders()メソッドも同じエラーを返します。 – seon