我有一个HttpClient
由多个线程共享的实例。我想用它来发出一个经过身份验证的请求。因为应该只对单个请求进行身份验证,所以我不想按照文档HttpClient
中的描述修改实例。这是我已经解决的问题,但它不起作用。据我所知,它看起来根本没有被使用。有小费吗?CredentialsProvider
HttpContext context = null;
if(feedSpec.isAuthenticated()) {
context = new BasicHttpContext();
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(feedSpec.getHttpUsername(), feedSpec.getHttpPassword()));
context.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider);
context.setAttribute(ClientPNames.HANDLE_AUTHENTICATION, true);
}
HttpGet httpGet = new HttpGet(feedSpec.getUri());
HttpResponse httpResponse = httpClient.execute(httpGet, context);