Android 截击ClientError意外响应代码404

Android 截击ClientError意外响应代码404,android,json,android-volley,android-6.0-marshmallow,Android,Json,Android Volley,Android 6.0 Marshmallow,我在OneErrorResponse中收到com.android.volley.ClientError异常。下面是我的代码。最初,代码使用截取的“StringRequest”工作;当我将其更改为使用JsonObjectRequest时,我得到了错误。我认为错误与请求参数有关。它们没有被发送到服务。TestREST服务是用.NET编写的,但这没有任何区别 private static final String ENDPOINT = "http://XXX.XXX.X.XXX/Test.App.RE

我在OneErrorResponse中收到com.android.volley.ClientError异常。下面是我的代码。最初,代码使用截取的“StringRequest”工作;当我将其更改为使用JsonObjectRequest时,我得到了错误。我认为错误与请求参数有关。它们没有被发送到服务。TestREST服务是用.NET编写的,但这没有任何区别

private static final String ENDPOINT = "http://XXX.XXX.X.XXX/Test.App.REST/api/User/";

HashMap<String, String> params = new HashMap<String, String>();
params.put("EmployeeId", "01123");
params.put("Environment", "DAT");

CustomRequest jsonRequest = new CustomRequest
            (Request.Method.GET, ENDPOINT, params, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        ControlUserResponse resp = (ControlUserResponse) gson.fromJson(response.toString(), ControlUserResponse.class);
                        respTxt.setText(resp.firstName + " -- " + resp.lastName);
                    } catch (JsonSyntaxException e) {
                        respTxt.setText(e.toString());
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    respTxt.setText(error.toString());
                    error.printStackTrace();
                }
            });

Volley.newRequestQueue(this).add(jsonRequest);

我已经更改了代码。现在我从REST服务中得到了正确的结果

Uri.Builder builder = Uri.parse(ENDPOINT).buildUpon();
builder.appendQueryParameter("EmployeeId", "12345555");
builder.appendQueryParameter("Environment", "DEV");

JsonObjectRequest  jsonRequest = new JsonObjectRequest
            (Request.Method.GET, builder.toString(), null, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        ControlUserResponse resp = (ControlUserResponse) gson.fromJson(response.toString(), ControlUserResponse.class);
                        respTxt.setText(resp.firstName + " -- " + resp.lastName);
                    } catch (JsonSyntaxException e) {
                        respTxt.setText(e.toString());
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    respTxt.setText(error.toString());
                    error.printStackTrace();
                }
            });

Volley.newRequestQueue(this).add(jsonRequest);
Uri.Builder=Uri.parse(ENDPOINT.buildon();
建造商附录参数(“员工ID”、“12345555”);
建筑商。附录查询参数(“环境”、“开发”);
JsonObjectRequest jsonRequest=新的JsonObjectRequest
(Request.Method.GET,builder.toString(),null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
ControlUserResponse resp=(ControlUserResponse)gson.fromJson(response.toString(),ControlUserResponse.class);
respTxt.setText(resp.firstName+“--”+resp.lastName);
}捕获(JsonSyntaxException e){
respTxt.setText(例如toString());
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
respTxt.setText(error.toString());
错误。printStackTrace();
}
});
newRequestQueue(this.add)(jsonRequest);

请发布错误消息上面发布的错误消息看起来您刚刚更改了端点。。。考虑到404未找到的错误是有意义的顺便说一下,
GsonRequest
在这里可用。
Uri.Builder builder = Uri.parse(ENDPOINT).buildUpon();
builder.appendQueryParameter("EmployeeId", "12345555");
builder.appendQueryParameter("Environment", "DEV");

JsonObjectRequest  jsonRequest = new JsonObjectRequest
            (Request.Method.GET, builder.toString(), null, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        ControlUserResponse resp = (ControlUserResponse) gson.fromJson(response.toString(), ControlUserResponse.class);
                        respTxt.setText(resp.firstName + " -- " + resp.lastName);
                    } catch (JsonSyntaxException e) {
                        respTxt.setText(e.toString());
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    respTxt.setText(error.toString());
                    error.printStackTrace();
                }
            });

Volley.newRequestQueue(this).add(jsonRequest);