带有大量JSON的Android POST请求

时间:2018-02-05 16:23:58

标签: android json android-volley

我正在尝试发送附加了JSON的POST请求。在正常情况下,如果我在

请求
 https://avinash-server.herokuapp.com/api/jsonData/["hsh","jjsj"]

数据发送成功,其中[“hsh”,“jjsj”]是JSON数据。如果我使用更大的JSON数据发送相同的请求。

["avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp","avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp","avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp", "avi", "sp"]

我没有得到任何成功的回复。

这是我的代码,请帮助。

 submitButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            RequestQueue myRequestQueue = Volley.newRequestQueue(MainActivity.this);
            String url = "https://avinash-server.herokuapp.com/api/jsonData/" + postData.toString();
            StringRequest MyStringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    //This code is executed if the server responds, whether or not the response contains data.
                    //The String 'response' contains the server's response.
                    Toast.makeText(MainActivity.this,response,Toast.LENGTH_SHORT).show();



                }
            }, new Response.ErrorListener() { //Create an error listener to handle errors appropriately.
                @Override
                public void onErrorResponse(VolleyError error) {
                    //This code is executed if there is an error.
                    textView.setText(error.toString());
                    Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();
                }
            });
            myRequestQueue.add(MyStringRequest);


        }
    });

3 个答案:

答案 0 :(得分:0)

Whare是你的hashmap还是jsonbody? 我找不到。 也许你没有发送任何东西。

答案 1 :(得分:0)

这里首先要提到的是

["avi", "sp", "avi", "sp", ... ]

不是JSON数据!

看看https://www.w3schools.com/js/js_json_intro.asp

你应该有一个键值对。我将在这里提供一个工作凌空POST请求的示例:

private void registerUser(final String name, final String email,
                          final String password) {

    pDialog.setMessage("Registering ...");
    showDialog();

    //Adding the user email and password to a MAP to build a JSON from it
    Map<String, String> params = new HashMap<String, String>();
    params.put("email", email);
    params.put("password", password);
    params.put("fullName", name);

    final JSONObject request = new JSONObject(params);

    final JsonObjectRequest req = new JsonObjectRequest(AppConfig.URL_REGISTER, request,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {

                    hideDialog();

                    try {
                        JSONObject jObj = response;

                            //Extracting data from response
                            String uid = jObj.getString("_id");
                            String name = jObj.getString("fullName");
                            String email = jObj.getString("email");

                            Intent intent = new Intent(
                                    RegisterActivity.this,
                                    someClass.class);
                            startActivity(intent);
                            finish();
                        } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        try {
                           //SOME ACTION IF THE RESPONSE STATUS CODE IS NOT 4xx or 5xx
                        } catch (Exception e){
                            Toast.makeText(getApplicationContext(),
                                    "Try once again, please...", Toast.LENGTH_LONG).show();
                        }
                        hideDialog();
        }

如果您有任何问题,请告诉我

你问题中提到的事情:你发送的帖子请求附有数据作为url params。这使得POST和GET之间存在差异。在POST请求中,您必须在JSON正文中附加数据

答案 2 :(得分:0)

请尝试更改请求时间, 它对我有用

private int MY_SOCKET_TIMEOUT_MS = 10000;

            final JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                if (mResultCallback != null)
                    mResultCallback.notifySuccess(requestType, response);

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (mResultCallback != null)
                    mResultCallback.notifyError(requestType, error);

            }
        }) {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                final Map<String, String> headers = new HashMap<>();
                String base64EncodedCredentials = Base64.encodeToString(String.format(authHeaders).getBytes(), Base64.NO_WRAP);
                headers.put("Authorization", "Basic " + base64EncodedCredentials);
                return headers;
            }

            @Override
            protected VolleyError parseNetworkError(VolleyError volleyError) {
                if (volleyError.networkResponse != null && volleyError.networkResponse.data != null) {
                    VolleyError error = new VolleyError(new String(volleyError.networkResponse.data));
                    volleyError = error;

                }
                return volleyError;
            }
        };

        jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(
                MY_SOCKET_TIMEOUT_MS,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        VolleySingleton.getInstance(mContext).addToRequestQueue(jsonObjReq);