【发布时间】:2011-12-01 08:18:51
【问题描述】:
两个相关问题,我使用的是 Apache HTTP Client 4.x API。 myHttpPost 是 HttpPost 的一个实例,而 myHttpClient 是 HttpClient 的一个实例。我正在尝试使用基本身份验证发送请求。所以我有一个 HttpClient 并创建一个 HttpPost。
设置基本身份验证标头的“蛮力”方法似乎是将其设置在 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 进行基本身份验证的正确方法吗?还是有更清洁/更简单的方法。
【问题讨论】:
标签: java apache authentication httpclient basic-authentication