【问题标题】:how to send jsonObject post request in volley library? am using php for the server side如何在凌空库中发送 jsonObject 发布请求?我在服务器端使用 php
【发布时间】:2017-12-02 08:47:28
【问题描述】:

代码:-

它使用登录用户 ID 向服务器发送 JsonObject POST 请求 一切都很好,但POST 请求不起作用

sharedPreferences = getActivity ().getSharedPreferences ( MyPREFERENCES, Context.MODE_PRIVATE );
            final String logedUserId = sharedPreferences.getString ( usersId, "" );
            Map<String, String> postParams= new HashMap<String, String> ();
            postParams.put ( "userId", logedUserId );
            JsonObjectRequest request = new JsonObjectRequest ( Request.Method.POST, getUrl (),new JSONObject ( postParams), new Response.Listener<JSONObject> () {
                @Override
                public void onResponse(JSONObject response) {
                    VolleyError.setVisibility ( View.GONE );
                    NewsList = parseJSONResponse ( response );
                    adapterNews.setNewsList ( NewsList );

                }
            }, new Response.ErrorListener () {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyError.setVisibility ( View.VISIBLE );
                    if (error instanceof TimeoutError || error instanceof NoConnectionError) {
                        VolleyError.setText ( R.string.error_timeout );

                    } else if (error instanceof AuthFailureError) {
                        VolleyError.setText ( R.string.Auth_Fail_Error );

                    } else if (error instanceof ServerError) {
                        VolleyError.setText ( R.string.Server_Error );

                    } else if (error instanceof NetworkError) {
                        VolleyError.setText ( R.string.Network_Error );

                    } else if (error instanceof ParseError) {
                        VolleyError.setText ( R.string.Parse_Error );

                    }

                }
            } ){
                public Map<String, String> getHeaders() throws AuthFailureError{
                    HashMap<String, String> headers= new HashMap<> (  );
                    headers.put ( "Content-Type", "application/json; charset=utf-8");
                    return headers;
                }
            };
            VolleySingleton.getInstance ( getActivity () ).addToRequestqueue ( request, "UserId" );

服务器响应

    {
      "NEWS": Array[10][
        {
          "News_id": "57",
          "News_Host_Id": "1",
          "News_Host_Agent": "AppFactory",
          "News_Post_Date": "2017-10-27",
          "News_Title": "Amazing fashion blog",
          "News_Descriptions": "Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.",
          "News_image": "http://10.0.2.2:81/file/server-side/upload/24610.jpg"
        },
        {
          "News_id": "57",
          "News_Host_Id": "1",
          "News_Host_Agent": "Computer Scince",
          "News_Post_Date": "2017-10-27",
          "News_Title": "Amazing fashion blog",
          "News_Descriptions": "Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.",
          "News_image": "http://10.0.2.2:81/file/server-side/upload/24610.jpg"
        }
]
}

当用户发送帖子请求时,如果用户订阅新闻频道,服务器端代码将验证用户 ID 并给出JSON 类似上述结果

【问题讨论】:

    标签: php android json


    【解决方案1】:
    private void login() {
    
        final JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("email", "tu@tu.in");
            jsonObject.put("password", "123456");
            jsonObject.put("login_by", "manual");
            jsonObject.put("device_type", "android");
            jsonObject.put("device_token", "fz_swyQo2-E:APA91bE3VVfHEPGAghrKaHw46FK3g3JUxsqEJJkPGKXIjnjrLgbPZyGkyfdg5OaaayiEyGCmZKkGyoqoxZ-KlXMUhrNDHZvS1j68oq64uQ8Thm9SrZ78wpblTBnUczHAXXLRSGk7PQMo");
            jsonObject.put("app_version", "1.3.1");
        } catch (JSONException e) {
            Toast.makeText(this, "JSONException : " + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    
        String url = "https://Demo.com/userslogin.php";
    
        final ProgressDialog pDialog = new ProgressDialog(this);
        pDialog.setMessage("Loading...");
        pDialog.show();
    
        JsonObjectRequest jsonObjReq = new JsonObjectRequest(
                url, jsonObject,
                new Response.Listener<JSONObject>() {
    
                    @Override
                    public void onResponse(JSONObject response) {
                        Toast.makeText(MainActivity.this, "response : " + response, Toast.LENGTH_LONG).show();
                        pDialog.hide();
                    }
                }, new Response.ErrorListener() {
    
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(MainActivity.this, "VolleyError : " + error.getMessage(), Toast.LENGTH_LONG).show();
                pDialog.hide();
            }
        }) {
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("Content-Type", "application/json");
                return params;
            }
        };
    
        VolleySingleton.getInstance(MainActivity.this).addToRequestQueue(jsonObjReq);
    }
    

    【讨论】:

    • 你能告诉我我的代码有什么问题吗?只为未来
    • 我认为您将 map 转换为 jsonobjec 的部分。
    • 它不发布用户ID
    猜你喜欢
    • 2017-12-03
    • 2016-02-27
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 2015-10-07
    相关资源
    最近更新 更多