首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用JsonObjectRequest发送身体数据?Android-Volley库

如何用JsonObjectRequest发送身体数据?Android-Volley库
EN

Stack Overflow用户
提问于 2018-12-22 10:03:16
回答 2查看 1K关注 0票数 1

我正在尝试将数据发送到我的服务器。我创建一个JsonObject,并在创建JsonObjectRequest时将其作为参数传递。它没有给出任何错误,但它没有返回任何东西。和邮递员试过了,效果很好。

这是我的密码:

代码语言:javascript
复制
    JSONObject jsonBody = new JSONObject();

    try {
        jsonBody.put("firstname", "asd");
        jsonBody.put("lastname", "asd");
        jsonBody.put("id", "1");
    } catch (JSONException e) {
        e.printStackTrace();
    }



    //creating a JsonObjectRequest
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showPlayersUrl,
    jsonBody, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            JSONArray players;
            try{
                players = response.getJSONArray("Players");
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    },
    new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    requestQueue.add(jsonObjectRequest);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-22 15:46:31

好吧,发现问题了。服务器端我并没有接受json格式的数据。只要加上这个就行了:

代码语言:javascript
复制
$_POST = json_decode(file_get_contents('php://input'), true);
票数 1
EN

Stack Overflow用户

发布于 2018-12-22 10:16:09

试一试:

代码语言:javascript
复制
RequestQueue queue = Volley.newRequestQueue(this);

private void makeJsonObjReq() {
showProgressDialog();
        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();
            }
        }) {

    @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.setTag(TAG);
queue.add(jsonObjReq);



}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53894696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档