我在使用此示例代码获取网站的HTML代码时遇到问题。
我必须使用上面的那个,因为我需要在Android中为我的应用程序进行抢先身份验证。
我认为解决方案可能是httpget对象,但我仍然只得到错误:( C.F. HttpGet httpget = new HttpGet(“/ index.html”);
是否有人知道如何使用链接的示例代码获取上面httpget对象中指定的文件内容。它肯定叫,但现在我只能获得状态代码等等......
感谢4位帮助
答案 0 :(得分:13)
去年我解决这个问题时,我放弃了HttpClient的原生抢先式HTTP身份验证,而只是rolled the header myself。
答案 1 :(得分:11)
备选方案1 :请阅读提出基于Http Basic Authentication with Android的解决方案的HttpClient 4 official docs。我没有亲自测试过,所以我很高兴知道它是否真的有效。
编辑:我刚试过它,它就像一个魅力。
备选方案2 : 您还可以添加@CommonsWare提议的“授权”HTTP标头:
post.addHeader("Authorization", "Basic " + Base64.encode(username+":"+password));
在这种情况下,您需要Base64编码器来编码包含用户名和密码的字符串。你可以在互联网上找到很多实现。
答案 2 :(得分:9)
对我来说,上面的示例在Android上无效。我必须做以下事情:
post.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.NO_WRAP));
答案 3 :(得分:7)
谢谢janex。
我必须在Android上做同样的事情。
post.addHeader("Authorization", "Basic " + Base64.encodeToString((username+":"+password).getBytes(),Base64.NO_WRAP));
欢呼声