如何不转义斜杠,使用齐射

时间:2016-05-26 18:57:57

标签: android post android-volley

我正在使用凌空发送POST请求。请求具有自定义标头和json请求正文。请求正文中的一个json值是一个URL。当我创建一个jsonobject时,//中的URL被发送为\ / \ /。 (例如“key1:”http // www.xyz.com“作为”key1“发送:”http:\ / \ / www.xyz.com“ 这会导致400错误。我该如何解决这个问题?

这是使用排球的POST:

RequestQueue queue = Volley.newRequestQueue(this);

        try{
            jsonBody = new JSONObject();
            jsonBody.put("Key1","http://xyz1.com");
            jsonBody.put("Key2","val2");

        }
        catch (JSONException e){

        }


        JsonObjectRequest req = new JsonObjectRequest(Request.Method.POST,URL, jsonBody,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        // handle response
                        Log.d("MAIN","response recd="+response.toString());
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // handle error
            }
        }) {



            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("CUSTOM_HEADER", "Yahoo");
                headers.put("ANOTHER_CUSTOM_HEADER", "Google");
                return headers;
            }


        };

        queue.add(req);

1 个答案:

答案 0 :(得分:0)

json值格式正确。通过priting jsonbody.get(“key”)检查 使用.toString打印出json时,转义斜杠。

对于我的情况,通过添加标题修复了400错误: params.put(“Content-Type”,“application / json; charset = utf-8”);