两个相关的问题,我使用的是Apache HTTP Client 4.x API。 myHttpPost是HttpPost的一个实例,myHttpClient是HttpClient的一个实例。我正尝试使用基本身份验证发送请求。所以我有一个HttpClient并创建一个HttpPost。Base64编码基本身份验证标头Apache HTTP客户端
设置基本身份验证标头的'蛮力'方式似乎是将其设置在HttpPost标头中。
String encoding = Base64Encoder.encode("username" + ":" + "password");
myHttpPost.setHeader("Authorization", "Basic " + encoding);
的例子从另一个堆栈溢出问题上面来了(无法找到链接到现在)。关于Base64Encoder类 - 我可以在哪个包中找到它或从哪里下载它?
主要问题 - 我希望做一个更美观的方式基本身份验证使用下面的代码:
myHttpClient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.BASIC),
new UsernamePasswordCredentials("username", "password")
);
但这似乎并没有工作。那么,上面的第一个例子是使用Apache HTTP Client 4.0进行基本身份验证的正确方法吗?或者有更清洁/更简单的方法。
谢谢TEG - 我试过这个,但没有成功(尝试了文字'基本'和常量。)。我已经更新了这个问题以反映这个额外的参数。尽管如此,基础64编码头仍然可以解决工作问题。 – gamozzii