0

我在 tomcat 中有一个服务器,我正在尝试从我的 android 设备发出请求。我得到的只是 415。我无法通过发送有缺陷的 Json 来用提琴手复制错误。服务器没有响应我的请求。为了以防万一,我确实在每一步都有 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);

不是重复的,因为我的请求是通过 JsonObjectRequest 完成的。删除字符集也无济于事。

在此处输入图像描述

4

1 回答 1

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;
于 2016-01-11T07:38:49.630 回答