J'ai une instance HttpClient
qui est partagée par un certain nombre de threads. Je voudrais l'utiliser pour faire une seule demande authentifiée. Étant donné que seule la requête unique doit être authentifiée, je ne souhaite pas modifier l'instance HttpClient
comme décrit dans le documentation. Voici ce que j'ai travaillé à la place, qui ne fonctionne pas. D'après ce que je peux dire, il ne semble pas que le CredentialsProvider
soit utilisé. Des conseils?Authentification d'une seule requête avec httpclient 4.x
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);
Quel type d'authentification utilisez-vous? BASIC, DIGEST, FORMULAIRE? – rodrigoap
authentification de base –
HttpClient 4 est un gâchis terrible, IMO. Cela promettait beaucoup, mais c'est stupidement difficile à utiliser pour des cas assez simples. Je colle avec v3. – skaffman