Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请求后截击_Java_Android_Rest_Api_Web Services - Fatal编程技术网

Java 请求后截击

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

我有个问题

提交请求时,显示错误“E/Volley:[300]BasicNetwork.performRequest:的意外响应代码404”

但是我用浏览器或邮递员()发送相同的请求,它可以工作

您可以查看请求的照片()

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”);
返回标题;
}

您可以直接使用您的url
http://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);

    }
});