【问题标题】:Android: How to call put method in Volley?Android:如何在 Volley 中调用 put 方法?
【发布时间】:2018-10-14 21:44:56
【问题描述】:

当我在邮递员上调用 URL 时,它会返回预期的结果。我使用 Volley 使用 PUT 方法,但它不起作用。

StringRequest reg=new StringRequest(Request.Method.PUT, AppConfig.Registration, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
    Log.d("USER_REG",response);
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.d("USER_REG","-------------"+error);
    }
}){
    @Override
    protected Map<String,String> getParams(){
        Map<String,String> params = new HashMap<String, String>();
        params.put(name1,Name);
        params.put(client_id1,CID);
        params.put(email1,Email);
        params.put(mobile1,Mobile);
        params.put(password1,Password);
        params.put(device_id1,"123456");
        return params;
    }

};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(reg);

这是邮递员的输出。

【问题讨论】:

  • 您遇到任何错误?
  • 请使用 Header 检查:@Override public String getBodyContentType() { return "application/json"; }
  • 在邮递员中,您将 JSON 对象作为原始数据传递。在这里,您将参数列表作为表单数据传递。

标签: java android web-services android-volley postman


【解决方案1】:

目前,您正在使用 Volley 作为路径参数从 Android 发送数据,路径参数应以 JSON 格式发送,如下所示。

RequestQueue queue = Volley.newRequestQueue(this);

private void makeJsonObjReq() {
    Map<String, String> postParam= new HashMap<String, String>();
    postParam.put(name1,Name);
    postParam.put(client_id1,CID);
    postParam.put(email1,Email);
    postParam.put(mobile1,Mobile);
    postParam.put(password1,Password);
    postParam.put(device_id1,"123456");

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.PUT,
        Const.YOUR_URL, new JSONObject(postParam),
        new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                Log.d(TAG, response.toString());
                msgResponse.setText(response.toString());
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
            }
        }) {

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("Content-Type", "application/json; charset=utf-8");
        return headers;
    }
};

jsonObjReq.setTag(TAG);
queue.add(jsonObjReq);

您还需要在标题中添加Content-Typeapplication/json

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 2014-08-13
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多