【发布时间】:2017-02-15 01:37:25
【问题描述】:
我尝试登录我的应用程序,当我尝试使用 volley 库调用 API 时,它给出 com.android.volley.ServerError 和响应代码 400。
final String username = editTextUsername.getText().toString().trim();
final String password = editTextPassword.getText().toString().trim();
final String email = editTextEmail.getText().toString().trim();
StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
}
}){
@Override
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put(KEY_USERNAME,username);
params.put(KEY_PASSWORD,password);`enter code here`
params.put(KEY_EMAIL, email);
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
我看到了很多例子,但我没有得到任何解决方案。
【问题讨论】:
-
您的代码乍一看还不错,除了 getParams() 中的“在此处输入代码”。您不显示 URL,也许这是不正确的。我建议使用 tcpdump 或 wireshark 捕获网络上的请求,并将其与来自浏览器或 Postman 的工作请求进行比较。
-
根据我的经验,您的 php 脚本也可能有问题。