Java 请求后截击
我有个问题 提交请求时,显示错误“E/Volley:[300]BasicNetwork.performRequest:的意外响应代码404” 但是我用浏览器或邮递员()发送相同的请求,它可以工作 您可以查看请求的照片()Java 请求后截击,java,android,rest,api,web-services,Java,Android,Rest,Api,Web Services,我有个问题 提交请求时,显示错误“E/Volley:[300]BasicNetwork.performRequest:的意外响应代码404” 但是我用浏览器或邮递员()发送相同的请求,它可以工作 您可以查看请求的照片() btn_-volley.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图){ 字符串URL=”http://192.168.0.130:1010/api/CRM/check_login"; Res
btn_-volley.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
字符串URL=”http://192.168.0.130:1010/api/CRM/check_login";
Response.Listener=新建Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
if(response.isEmpty()){
Toast.makeText(getApplicationContext(),“test”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG.show();
}
}
};
Response.ErrorListener ErrorListener=新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(getApplicationContext(),“error”,Toast.LENGTH_LONG.show();
}
};
StringRequest=新的StringRequest(request.Method.POST、URL、侦听器、errorListener)
{
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
参数put(“用户名”、“测试”);
参数put(“密码”、“123”);
返回参数;
}
};
AppController.getInstance().addToRequestQueue(请求);
}
});
您需要将内容类型添加到标题中
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=utf-8");
return headers;
}
@覆盖
公共映射getHeaders()引发AuthFailureError{
HashMap headers=新的HashMap();
headers.put(“内容类型”、“应用程序/json;字符集=utf-8”);
返回标题;
}
您可以直接使用您的urlhttp://192.168.0.130:1010/api/CRM/check_login?username=test&password=123
因为getParams()
方法用于应用程序/表单数据
而不是查询
参数,所以它对您不起作用
来源:
btn_volley.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username="test";//you can get username and password from edittexts
String password="123";
String URL = "http://192.168.0.130:1010/api/CRM/check_login?username="+username+"&password="+password;
Response.Listener<String> listener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.isEmpty()) {
Toast.makeText(getApplicationContext(), "test",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG).show();
}
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),"error",Toast.LENGTH_LONG).show();
}
};
StringRequest request = new StringRequest(Request.Method.POST, URL, listener, errorListener);
AppController.getInstance().addToRequestQueue(request);
}
});
btn_-volley.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
String username=“test”//您可以从EditText获取用户名和密码
字符串密码=“123”;
字符串URL=”http://192.168.0.130:1010/api/CRM/check_login?username=“+username+”&password=“+password;
Response.Listener=新建Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
if(response.isEmpty()){
Toast.makeText(getApplicationContext(),“test”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG.show();
}
}
};
Response.ErrorListener ErrorListener=新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(getApplicationContext(),“error”,Toast.LENGTH_LONG.show();
}
};
StringRequest=新的StringRequest(request.Method.POST、URL、侦听器、errorListener);
AppController.getInstance().addToRequestQueue(请求);
}
});
我现在添加了这段代码,我在日志中看到了这段代码(E/Volley:[315]BasicNetwork.performRequest:Unexpected response code 400 for),但仍然无法正常工作。我认为Api是为在URL中获取参数而创建的,所以,尝试在URL中传递参数,而不是在参数中传递参数。这是解决直接使用问题的唯一解决方案吗?是的,我检查了你的邮递员请求屏幕截图,没有api的标题。删除您的getParams()
方法直接使用url非常感谢
btn_volley.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username="test";//you can get username and password from edittexts
String password="123";
String URL = "http://192.168.0.130:1010/api/CRM/check_login?username="+username+"&password="+password;
Response.Listener<String> listener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response.isEmpty()) {
Toast.makeText(getApplicationContext(), "test",Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),response,Toast.LENGTH_LONG).show();
}
}
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),"error",Toast.LENGTH_LONG).show();
}
};
StringRequest request = new StringRequest(Request.Method.POST, URL, listener, errorListener);
AppController.getInstance().addToRequestQueue(request);
}
});