Le Codage Base64 l'Authentification de Base de l'en-Tête HTTP Apache Client

Deux questions connexes, je suis en utilisant le Client HTTP Apache 4.x API. myHttpPost est une instance de HttpPost et myHttpClient est une instance de HttpClient. Je suis en train d'envoyer une demande à l'aide de l'authentification de base. J'ai donc un HttpClient et de créer un HttpPost.

La 'force brute' façon de régler une authentification de base de l'en-tête semble être de le mettre dans le HttpPost en-tête.

String encoding = Base64Encoder.encode("username" + ":" + "password");
myHttpPost.setHeader("Authorization", "Basic " + encoding);

L'exemple ci-dessus provient d'un autre débordement de pile question (ne peut pas trouver de lien pour maintenant). Par rapport à la Base64Encoder classe - forfait puis-je la trouver ou où puis-je la télécharger?

Question principale - j'ai été en espérant faire de l'authentification de base en plus de manière esthétique à l'aide du code ci-dessous:

myHttpClient.getCredentialsProvider().setCredentials(
    new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, AuthPolicy.BASIC),
    new UsernamePasswordCredentials("username", "password")
);

Mais cela ne semble pas fonctionner. Donc, est le premier exemple ci-dessus, la bonne façon de faire de l'authentification de base HTTP Apache Client 4.0? Ou est-il un nettoyant/moyen plus simple.

OriginalL'auteur gamozzii | 2011-12-01