2016-06-20 2 views
0

Я google, и я попытался отправить запрос строки, присоединив заголовки. Но я всегда получаю ошибку с ошибкой аутентификации. Кажется, мой заголовок не настроен должным образом. Вот мой кодКак сделать запрос строки с волейболом с прикрепленными заголовками?

StringRequest stringRequest = new StringRequest(Request.Method.POST, url, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Log.d("response",response); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         if (error!=null){ 
          error.printStackTrace(); 
         } 
        } 
       }){ 

      @Override 
      protected Map<String,String> getParams(){ 
       Map<String,String> params = new HashMap<String, String>(); 
       params.put("client_id=",getString(R.string.client_id)); 
       params.put("&client_secret=",getString(R.string.client_secret)); 
       params.put("&grant_type=","authorization_code"); 
       params.put("&code=",accessToken); 
       return params; 
      } 

      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       HashMap<String, String> params = new HashMap<String, String>(); 
       params.put("Authorization", "Basic " + base64); 
       params.put("Content-Type", "application/x-www-form-urlencoded"); 
       params.put("Accept", "*/*"); 
       return super.getHeaders(); 
      } 
     }; 

     RequestQueue requestQueue = Volley.newRequestQueue(getActivity()); 
     requestQueue.add(stringRequest); 

Я прикрепил заголовки в getHeaders() и поток писатель в getParams(). Может кто-нибудь помочь мне разрешить this.Thanks заранее.

ответ

1

Не положите Params как этот

params.put("&grant_type=","authorization_code");

заменить как этот

params.put("grant_type", authorization_code);

Dont добавить & и = знак будет автоматически включен.

@Override 
protected Map<String,String> getParams(){ 
    Map<String,String> params = new HashMap<String, String>(); 
    params.put("client_id",getString(R.string.client_id)); 
       params.put("client_secret",getString(R.string.client_secret)); 
       params.put("grant_type","authorization_code"); 
       params.put("code",accessToken); 
       return params; 
      } 

заголовок попробовать, как этот

@Override 
public Map getHeaders() throws AuthFailureError { 
    Map headers = new HashMap(); 
    headers.put("appId", "MYAPP_ID_HERE"); 
    return headers; 
} 
+0

Я все еще получаю AuthFailureError. –

+0

@ user6444945 см. Обновленный ответ –

+0

Да, я только что нашел его, я должен вернуть карту вместо super.getHeaders(). Спасибо за вашу помощь. –

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