2015-08-08 100 views
0

我使用下面的代碼來打開文件,但沒有工作,並顯示消息「BasicNetwork.performRequest:http:// .....意外的響應代碼401」。 android和volley有什麼問題?與Volley Android庫Http基本授權

StringRequest sr = new StringRequest(Method.POST,url, 
      new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 

       pages = PageParser.parse(response); 
       adapter = new DailyReportAdapter(MenuDailyReport.this, 
         pages); 
       lv.setAdapter(adapter); 
       pDialog.hide(); 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       // error.printStackTrace(); 
       pDialog.hide(); 
       Toast.makeText(MenuDailyReport.this, 
         "Could not connect to server"+error.getMessage(), Toast.LENGTH_LONG) 
         .show(); 
       finish(); 
      } 
     }) 
{ 

     @Override 
     protected Map<String,String> getParams(){ 
      Map<String,String> params = new HashMap<String, String>(); 

      params.put("username","mohammad"); 
      params.put("password","mohammad123"); 
      return params; 
     } 

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

它使用像郵遞員這樣的外部工具嗎? –

+0

401 reponse代碼是未經授權的,我認爲你應該檢查你的服務器端(web服務)代碼。登錄時不應檢查授權。如果這不是登錄階段,請改用持票人標記。此外,請顯示您的Web服務代碼以獲取更多信息。 – BNK

回答

0

問題可能是字符集,必須是utf-8,我認爲。所以

嘗試去駕馭這個methos,內關重寫getheaders(),因爲它:

@Override 
    public String getBodyContentType() { 
     return "application/x-www-form-urlencoded; charset=UTF-8"; 
    } 

我建議使用承載令牌作爲標題,效果較好。 此致敬禮。