Как отправить данные формы (как в Почтальоне), используя Volley? - PullRequest
0 голосов
/ 21 июня 2019

Я читал другие сообщения на эту тему, но ни один не работал для меня.Отправка необработанных данных осуществляется с помощью getParams(), но некоторые сообщения показывали отправку данных формы с использованием того же.

Я попытался отправить, используя getBody() и getParams(), но оба вернули ошибки.

Это то, что я пытался сделать

StringRequest stringRequest = new StringRequest(Request.Method.POST, UPDATE_PROFILE_IMAGE_URL, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d(TAG, "onResponse: " + response);
                Toast.makeText(ProfileActivity.this, String.valueOf(response), Toast.LENGTH_SHORT).show();
            }
        }, Methods.errorListener) {
            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }

            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("id", "1");
                params.put("image", encodedString);
                return params;
            }
        };
        requestQueue.add(stringRequest);

Я пытался использовать Почтальон, и работает только форма данных.

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Попробуйте этот код, надеюсь, он вам подойдет

StringRequest stringRequest = new StringRequest(Request.Method.POST, UPDATE_PROFILE_IMAGE_URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d(TAG, "onResponse: " + response);
            Toast.makeText(ProfileActivity.this, String.valueOf(response), Toast.LENGTH_SHORT).show();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
        }
    }) 

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("id", "1");
            params.put("image", encodedString);
            return params;
        }
    };
    requestQueue.add(stringRequest);
0 голосов
/ 21 июня 2019

попробуйте ниже код, это может помочь

    private void postUsingVolley() {
    String tag_json_obj = "json_obj_req";

    final ProgressDialog pDialog = new ProgressDialog(this);
    pDialog.setMessage("posting...");
    pDialog.show();

    final String mVendorId = DeviceDetails.getInstance(mContext).getVendor_id();
    String mUserId = UserModel.getInstance(mContext).getUser_id();

    final HashMap<String, String> postParams = new HashMap<String, String>();
    sendFeedbackParams.put("key1", value1);
    sendFeedbackParams.put("key2", value2);
    sendFeedbackParams.put("key3", value3);

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            ApplicationData.POST_URL, new JSONObject(postParams),
            new com.android.volley.Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    //Log.d("TAG", response.toString());
                    try {
                        //Toast.makeText(mContext, response.getString("message"), Toast.LENGTH_LONG).show();
                        Toast.makeText(mContext, "Thank you for your post", Toast.LENGTH_LONG).show();

                        if (response.getBoolean("status")) {
                            pDialog.dismiss();
                            finish();
                        }
                    } catch (JSONException e) {
                        Log.e("TAG", e.toString());
                    }
                    pDialog.dismiss();
                }
            }, new com.android.volley.Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            //VolleyLog.d("TAG", "Error: " + error.getMessage());
            pDialog.dismiss();
            if (isNetworkProblem(error)) {
                Toast.makeText(mContext, "Internet Problem", Toast.LENGTH_SHORT).show();

            }
        }
    }) {

        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            return getRequestHeaders();
        }
    };

    jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(8000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    // Adding request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}
...