Отправить заголовок токена в объекте json - PullRequest
0 голосов
/ 15 октября 2018

Я использую почтовый метод залпом.Я искал и обнаружил, что getHeader() используется для отправки заголовка в запросе. Решение было использовать JSONObject request вместо строкового запроса (который я использую в настоящее время), но есть ли способ отправки заголовка через этот метод?Потому что в этом случае мне придется изменить много кода во многих классах.Извините за английский, я не являюсь носителем языка.Параметр запроса является объектом json.Я отправляю параметры, используя следующий код.

mRequestQueue = Volley.newRequestQueue(getContext());
    mStringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.d("Response", "onResponse: " + response);

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.i("This is the error", "Error :" + error.toString());
        }
    })
{
            @Override
            public String getBodyContentType() {
                return "application/json";
            }

            @Override
            public byte[] getBody()  throws AuthFailureError {
                HashMap<String, String> params2 = new HashMap<String, String>();
                params2.put("AssigneeId",userid);
                params2.put("IssueStatus", "5");
                return new JSONObject(params2).toString().getBytes();
            }
 };
        mRequestQueue.add(mStringRequest);

1 Ответ

0 голосов
/ 15 октября 2018

Этот запрос также имеет StringRequest .Пожалуйста, используйте getHeaders () следующим образом:

 public void requestWithSomeHttpHeaders() {
        RequestQueue queue = Volley.newRequestQueue(this);
        String url = "http://www.somewebsite.com";
        StringRequest getRequest = new StringRequest(Request.Method.GET, url, 
            new Response.Listener<String>() 
            {
                @Override
                public void onResponse(String response) {
                    // response
                    Log.d("Response", response);
                }
            }, 
            new Response.ErrorListener() 
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // TODO Auto-generated method stub
                    Log.d("ERROR","error => "+error.toString());
                }
            }
        ) {     
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError { 
                    Map<String, String>  params = new HashMap<String, String>();  
                    params.put("User-Agent", "Nintendo Gameboy");  
                    params.put("Accept-Language", "fr");

                    return params;  
            }
        };
        queue.add(getRequest);

    }

Для JsonObjectRequest :

JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET,url,
                null, new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject response) {
                Log.d(tag, response.toString());
                activity.hideDialog();
                try {
                    activity.onRequestServed(response, code);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(tag, "Error: " + error.getMessage());
                Log.e(tag, "Site Info Error: " + error.getMessage());
                Toast.makeText(activity.getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_SHORT).show();
                activity.hideDialog();
                try {
                    activity.onRequestServed(null,code);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }) {

            /**
             * Passing some request headers
             */
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                //headers.put("Content-Type", "application/json");
                headers.put("key", "Value");
                return headers;
            }
        };
...