在JSON对象参数Volley帖子中发送令牌标头

时间:2018-10-15 10:59:31

标签: android json post header android-volley

我在排球比赛中使用发球方法。我搜索发现getHeader()用于发送请求中的标头。解决方案是使用JSONObject request代替字符串request(我当前正在使用),但是有一种方法可以通过此方法发送标头?因为在那种情况下,我将不得不在许多类中修改很多代码。对不起英语,我不是母语。   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 :(得分:1)

此请求还具有 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;
            }
        };