感谢Samuh提示:) 插入了一个额外的换行符,它在GET请求中没有任何意义,但在POST中却很重要。 这是在android中生成Authorization标头的正确方法(在本例中为getB64Auth):
private String getB64Auth (String login, String pass) { String source=login+":"+pass; String ret="Basic "+Base64.encodeToString(source.getBytes(),Base64.URL_SAFE|Base64.NO_WRAP); return ret; }
缺少Base64.NO_WRAP标志。
简单地用这个:
String authorizationString = "Basic " + Base64.encodeToString( ("your_login" + ":" + "your_password").getBytes(), Base64.NO_WRAP); //Base64.NO_WRAP flag post.setHeader("Authorization", authorizationString);