是否可以使用Volley发送JSON Object而不是HASH MAP <string,string =“”>?

时间:2016-04-16 09:23:34

标签: android json android-studio android-volley jsonobject

我可以将Map <String, String>发布到我的服务器,但它以&分隔的形式出现。

我使用了Send post request using Volley and receive in PHP

中的代码

getParams()只是不能使用JSONObject返回类型。是否可以仅将JSONObject作为JSON发送?

我想将数据作为JSON发送,我将使用file_get_contents(php://input)。 为此,我将Content-Type更改为application/json; charset=utf-8

问题是使用这种方式我以[{1}}格式获取x=abc&y=def Map<String, String>类型的数据,我想要JSON格式{"x":"abc", "y":"def"} <的数据/ p>

与上述问题有所不同,因为我想在 JSON ON 中而不是在字符串MAP

中发布数据

2 个答案:

答案 0 :(得分:0)

试试这个:

private void jsonObjReq() {

        showProcessDialog();
        Map<String, String> postParam= new HashMap<String, String>();
        postParam.put("un", "xyz@gmail.com");
        postParam.put("p", "somepasswordhere");



JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
        Const.URL_LOGIN, new JsonObject(postParam),
        new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                Log.d(TAG, response.toString());
                msgResponse.setText(response.toString());
                hideProgressDialog();
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                hideProgressDialog();
            }
        }) {

    /**
     * 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;
    }



};
  

也改变你的php中的标题。

答案 1 :(得分:0)

简单的方法就是这个

<button title="Save & Submit" type="button" class="btn btn-default ok-button" data-toggle="modal" data-backdrop="static" data-keyboard="false" data-target="#divSaveNewAssetStructure">Save & Submit</button>

}