L'Authentification de base à l'aide de HTTP Commons Client
Je suis en train de regarder ce lien un essaie d'envoyer des requêtes au serveur
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html
public class Test {
public static void main(String[] args) throws ClientProtocolException, IOException {
DefaultHttpClient httpClient;
URL url = new URL("https://9.5.127.34:443");
httpClient = getSSLHttpClient(url);
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope("https://9.5.127.34", AuthScope.ANY_PORT),
new UsernamePasswordCredentials("root", "passw0rd"));
httpClient.setCredentialsProvider(credsProvider);
HttpGet httpget = new HttpGet("https://9.5.127.34/powervc/openstack/volume/v1/115e4ad38aef463e8f99991baad1f809//volumes/3627400b-cd98-46c7-a7e2-ebce587a0b05/restricted_metadata");
HttpResponse response = httpClient.execute(httpget);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
}
Mais il me donne l'erreur comme
Authentication required
S'il vous plaît dites-moi ce que je fais tort. Merci à l'Avance
Peut-il se produire parce que le protocole https?
N';t ressembler à ça. Je l'ai essayé avec Http et la même chose se passe
N';t ressembler à ça. Je l'ai essayé avec Http et la même chose se passe
OriginalL'auteur The_Lost_Avatar | 2013-10-30
Vous devez vous connecter pour publier un commentaire.
Peut-être que vous devriez essayer d'envoyer les paramètres d'authentification de manière préventive, comme expliqué ici: http://hc.apache.org/httpclient-legacy/authentication.html - mais je ne suis pas sûr si cela se rapporte à votre version.
Tapis de Mannion (@MatMannion) décrit probablement le plus commun de la méthode, qui devrait fonctionner avec la version actuelle: De préemption de l'authentification de Base avec Apache HttpClient 4
Fondamentalement, vous avez juste besoin d'ajouter un HTTP champ d'en-tête contenant la clé: "autorisation" et une chaîne encodée en base64 du nom d'utilisateur et le mot de passe (combinés et puis encodé en base64) ou la façon dont @Jonathan ou @AdamBatkin présentés dans le même thread (lien ci-dessus)
@edit:
Après avoir eu un peu de temps libre, j'ai pris ton exemple de code et de le jeter dans Netbeans (ouais, je veux obtenir un peu plus familier avec les NB) et construit un simple serveur jetty de démonstration qui utilise le protocole SSL et l'authentification basique et un Apache HttpClient pour appeler un simple hello world servlet pour mettre en valeur la façon dont le client a besoin de définir le protocole SSL et l'authentification basique. Il convient également de noter que le code a été prise à partir de l'officiel docs et le fichier de clés ainsi que le truststore sont le programme d'installation comme expliqué ici.
Veuillez trouver ci-dessous le code complet (à l'exception du fichier de stockage des clés qui sont binaires) du projet (peut-être quelqu'un d'autres peuvent le trouver utile).
pom.xml
JettyServer.java
ProcessingServlet.java
royaume.propriétés
Client.java
Ours avec moi comme je suis à peine de vérifier pour les erreurs, mais c'est un quick&sale exemple pour illustrer la fonctionnalité d'une connexion sécurisée par SSL Apache HttpClient qui utilise l'authentification de base.
J'ai essayé les deux premiers et qu'ils ne travaillent pas, et la troisième, on dirait qu'il est proxy autorisation, je n'ai pas besoin d'autoriser tous les proxys.
J'ai retenté aussi, tous les trois donnent la même exception.
.TOUT ne fonctionne pas. Je dois trouver quelque chose d'autre. Je ne peux que SSH sur le serveur, pas de telnet.
Je l'ai eu à l'époque Romaine. Merci beaucoup.
OriginalL'auteur Roman Vottner