2015-08-08 95 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"; 
    } 

我建议使用承载令牌作为标题,效果较好。 此致敬礼。