2016-06-20 12 views
0

私はgoogleと私はヘッダーを添付して文字列要求を投稿しようとしました。しかし、私はいつもauth failure error.Itは私のヘッダーが正しく設定されていないようです。ここに私のコードヘッダーを付けてボレーポストストリングリクエストを作成するには?

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.put("grant_type", authorization_code);

いけないように置き換えるこの

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

のようなのparamsを置きます。この

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

よう

@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; } 

トライヘッダ私はまだAuthFailureErrorを取得しています。 –

+0

@ user6444945更新された回答を見る –

+0

はい私はそれを見つけましたsuper.getHeaders()の代わりにmapを返すべきです。 –

関連する問題