使用Volley在体内发布表单数据参数 [英] Posting form-data Parameters in the body using Volley

查看:125
本文介绍了使用Volley在体内发布表单数据参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是使用邮递员完成的邮寄请求

This is the Post Request done using postman

我想要得到的答复是:

    {
  "result": "success",
  "reason": {
    "first_name": "aswath",
    "last_name": "AsH",
    "email": "selviragu09@gmail.com",
    "phone": "\"8867336754\"",
    "authy_id": "26829982",
    "updated_at": "2016-09-27 06:38:07",
    "created_at": "2016-09-27 06:38:07",
    "id": "5012"
  },
  "sms": "token sent"
}

这是我要发送的请求:

 JSONObject jsonBody = new JSONObject();
        jsonBody.put("first_name", firstname);
        jsonBody.put("last_name", lastName);
        jsonBody.put("email", Email);
        jsonBody.put("phone", number);

        final String mRequestBody = jsonBody.toString();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                Log.i("VOLLEY", response);
                Log.d("**********", "FETCHING IN VOLLEY REQ" + response.toString());


            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("VOLLEY", error.toString());
            }
        }) {
            @Override
            public String getBodyContentType() {
                return "application/json; charset=utf-8";
            }


            @Override
            public byte[] getBody() throws AuthFailureError {
                try {
                    return mRequestBody == null ? null : mRequestBody.getBytes("utf-8");
                } catch (UnsupportedEncodingException uee) {
                    VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", mRequestBody, "utf-8");
                    return null;
                }
            }


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError
            {
                Map<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "multipart/form-data");
                return headers;
            }
            @Override
            protected Response<String> parseNetworkResponse(NetworkResponse response) {
                String responseString = "";
                if (response != null) {
                    responseString = String.valueOf(response.statusCode);
                    // can get more details such as response.headers
                }
                return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
            }
        };

        getRequestOtpPage().addToRequestQueue(stringRequest);

但是当我发布请求时,它会返回错误!

But when i post request it returns the error!

如何解决问题?

推荐答案

只需尝试以下代码,该代码将用于使用凌空发送简单的帖子数据,只需替换URL和参数数据即可.

Just try with below code this will use to send simple post data using volley, just replace URL and parameter data.

StringRequest stringRequest = new StringRequest(Request.Method.POST, REGISTER_URL,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).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(){
                    Map<String,String> params = new HashMap<String, String>();
                    params.put(KEY_USERNAME,username);
                    params.put(KEY_PASSWORD,password);
                    params.put(KEY_EMAIL, email);
                    return params;
                }

            };

            getRequestOtpPage().addToRequestQueue(stringRequest);

这篇关于使用Volley在体内发布表单数据参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆