Android: Как вызвать метод put in Volley? - PullRequest
0 голосов
/ 04 мая 2018

Когда я вызываю URL на почтальоне, он возвращает ожидаемый результат. Я использую метод PUT, используя Volley, но он не работает.

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);

Вот вывод почтальона.

enter image description here

1 Ответ

0 голосов
/ 04 мая 2018

В настоящее время вы отправляете данные с вашего Android, используя Volley в качестве параметров пути, которые должны быть отправлены в формате 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-Type как application/json в заголовок.

...