您好我在StackOverflow上看到了一个包含此代码的示例:
String encoding = Base64Encoder.encode ("test1:test1");
HttpPost httppost = new HttpPost("http://host:post/test/login");
httppost.setHeader("Authorization", "Basic " + encoding);
System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
我有类似的任务。我尝试使用相同的代码,但我无法在任何地方找到Base64Encoder类。我使用httpclient-4.1.2.jar和httpcore-4.1.2.jar。有人可以帮我这个吗?
答案 0 :(得分:6)
Java API一直缺少Base64 en / decoder,所以你必须找到一个好的第三方,例如Apache Commons Codec,iHarder Base64等
答案 1 :(得分:4)
我认为你需要让commons编解码器与HttpClient一起使用Base64编码。这是链接。 Commons codec link
答案 2 :(得分:2)
因为maerics要我:
因为我认为Java6实际上是DatatypeConverter类,它是JAXB的一部分。
应该感兴趣的是两个静态公共方法parseBase64Binary
和printBase64Binary
。另请注意,它在java.lang
中定义,因此它是JDK的官方部分。你可以使用它,但我个人更喜欢commons变种,因为它在解码base64时没有返回字符串..