Volley Request with Raw data

前端 未结 2 1206
难免孤独
难免孤独 2021-01-15 21:55

In my application I have to send POST request with JSON req param, I tried to create request with Postman Rest Client and it is working fine but not working with below code.

相关标签:
2条回答
  • 2021-01-15 22:39

    hope this isn't too late.

    Have you tried a different type of request, like String or JsonObject? And a different syntax for the params?

    e.g.

         Map<String, Object> jsonParams = new ArrayMap<>();
        jsonParams.put("nodeId", null);
        jsonParams.put("userId", null);
        jsonParams.put("mobileNumber", "sharma@gmail.com");
        jsonParams.put("userProfile", null);
        jsonParams.put("region", null);
        jsonParams.put("countryCode", 91);
        jsonParams.put("password", pass@123);
        jsonParams.put("places", new ArrayList());
        jsonParams.put("trustedNetwork", new ArrayList());
        jsonParams.put("profilePic", null);
        jsonParams.put("fullName", null);
        jsonParams.put("longitude", 0.0);
        jsonParams.put("latitude", 0.0);
    
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, new JSONObject(jsonParams),
                new Response.Listener<JSONObject>()
                {
                    @Override
                    public void onResponse(JSONObject response)
                    {
                      mResponseListener.requestCompleted(response);
                    }
                },
                new Response.ErrorListener()
                {
                    @Override
                    public void onErrorResponse(VolleyError error)
                    {
                        if (null != error.networkResponse)
                        {
                         mResponseListener.requestEndedWithError(error);
                        }
                    }
                });
    

    Also, have a look at this SO question. Hope any of this helps.

    0 讨论(0)
  • 2021-01-15 22:42

    This is the working code, you can try. we can use JsonObjectRequest for raw data. Here i have just showing how to make requestObject that is added in queue

    String url = MConstant.API_END+"/userLogin";
        Map<String, String> params = new HashMap<String, String>();
        params.put("email",mEmailView.getText().toString());
        params.put("password",mPasswordView.getText().toString());
        params.put("api",MConstant.API);
        JSONObject objRegData = new JSONObject(params);
        JsonObjectRequest jsObjRequest = new JsonObjectRequest
                (Request.Method.POST, url, objRegData, new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        try {
    
                            // handle response data
                        } catch (JSONException e) {
                            e.printStackTrace();
                            //pDialog.show();
                        }
    
                    }
                }, new Response.ErrorListener() {
    
    
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        pDialog.hide();
                    }
                })
        {
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> params = new HashMap<String, String>();
                params.put("Content-Type", "application/json");
                return params;
            }
        };
    

    in server side PHP we can get data using

    $json = file_get_contents('php://input');
    $myPostData = json_decode($json, true);
    
    0 讨论(0)
提交回复
热议问题