JsonObjectRequest返回415

时间:2016-01-11 03:41:01

标签: android json jsonobjectrequest

我在tomcat中有一个服务器,我正在尝试从我的Android设备发出请求。我得到的全部是415.我无法通过发送有缺陷的Json来复制错误与fiddler。服务器不响应我的请求。为了以防万一,我的每一步都有println()。

                   try {
                        params.put("userId", 2);
                        params.put("latitude", lon1);
                        params.put("longitude", lat1);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    errTextBox.setText(params.toString());

                    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
                            url, params.toString(),
                            new Response.Listener<JSONObject>() {

                                @Override
                                public void onResponse(JSONObject response) {
                                    msg.setText(response.toString());

                                }
                            }, new Response.ErrorListener() {

                        @Override
                        public void onErrorResponse(VolleyError error) {
                            VolleyLog.d("Error: " + error.getMessage());
                            msg.setText("not ok " + error.getMessage());
                        }
                    }) {

                        /**
                         * Passing some request headers
                         * */
                        @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;
                        }

                    };
                    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(60000,
                            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

                    queue.add(jsonObjReq);

不是dublicate,因为我的请求是使用JsonObjectRequest完成的。删除字符集也无济于事。

enter image description here

1 个答案:

答案 0 :(得分:0)

嗯,我可能已经做了一个嘘声。 在我的服务器软件中,我已经将接收到的字符串解析为Json。 所以我需要发送纯文本......

@Override
                        public Map<String, String> getHeaders() throws AuthFailureError {
                            HashMap<String, String> headers = new HashMap<String, String>();
                            headers.put("Content-Type", "text/plain; charset=utf8");
                            return headers;