2015-10-10 3 views
4

У меня есть Залп код запросаДобавление пользовательских заголовков в залпового запросе

RequestQueue queue = Volley.newRequestQueue(this); 
String url =<My URL>; 

// Request a string response from the provided URL. 
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
      new Response.Listener<String>() { 
    @Override 
    public void onResponse(String response) { 
     // Display the first 500 characters of the response string. 
     mTextView.setText("Response is: "+ response.substring(0,500)); 
    } 
}, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
     mTextView.setText("That didn't work!"); 
    } 
}); 
// Add the request to the RequestQueue. 
queue.add(stringRequest); 

Как установить заголовок с именем авторизации в этом ??

ответ

0

вы можете написать класс расширяет запрос (переопределение getHeaders() и так далее) так же, как

public abstract class AbsRequest<T> extends Request<T>{ 

    public AbsRequest(int method, String url, Response.ErrorListener listener) { 
     this(method, url, null, listener); 
    } 

    public AbsRequest(int method, String url, Map<String, String> params, Response.ErrorListener listener) { 
     this(method, url, params, null, listener); 
    } 

    public AbsRequest(int method, String url, Map<String, String> params, Map<String, String> head, Response.ErrorListener listener) { 
     this(method, url, params, head, null, listener); 
    } 

    public AbsRequest(int method, String url, Map<String, String> params, Map<String, String> head, String bodyContentType, Response.ErrorListener listener) { 
     this(method, url, params, null, head, bodyContentType, listener); 
    } 

    public AbsRequest(int method, String url, String body, Map<String, String> head, String bodyContentType, Response.ErrorListener listener) { 
     this(method, url, null, body, head, bodyContentType, listener); 
    } 

    private AbsRequest(int method, String url, Map<String, String> params, String body, Map<String, String> head, String bodyContentType, Response.ErrorListener listener) { 
     super(method, url, listener); 
    } 
} 

для получения дополнительной информации вы можете увидеть https://github.com/Caij/CodeHub/blob/master/lib/src/main/java/com/caij/lib/volley/request/AbsRequest.java способ применения можно увидеть https://github.com/Caij/CodeHub/tree/master/app/src/main/java/com/caij/codehub/presenter/imp

24

Override getHeaders в запросе как:.

StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        // Display the first 500 characters of the response string. 
        mTextView.setText("Response is: "+ response.substring(0,500)); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      mTextView.setText("That didn't work!"); 
     } 
    }){ 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      Map<String,String> params = super.getHeaders(); 
      if(params==null)params = new HashMap<>(); 
      params.put("Authorization","Your authorization"); 
      //..add other headers 
      return params; 
     } 
    }; 
+0

Это должен быть принятый ответ. – stevyhacker

+3

Если вы получаете VolleyError: java.lang.UnsupportedOperationException, удалите Map params = super.getHeaders(); if (params == null) params = new HashMap <>(); , и добавьте Map params = new HashMap <>(); См. Также: http://stackoverflow.com/a/37344416/1371949 – felixwcf

0

звонок в super.getHeaders() выдает UnSuppor tedOperationException. удалить super.getHeaders(), чтобы избавиться от этого.

Смежные вопросы