Télécharger un fichier sur Internet en utilisant java: Comment s'authentifier?
Grâce à ce thread Comment télécharger et enregistrer un fichier à partir d'Internet à l'aide de Java?
Je sais comment faire pour télécharger un fichier, maintenant, mon problème est que j'ai besoin de s'authentifier sur le serveur à partir de laquelle je suis en telechargement. C'est une interface http à un serveur subversion. Quel domaine ai-je besoin de l'observer ?
En utilisant le code affiché dans le dernier commentaire, j'ai cette exception:
java.io.IOException: Server returned HTTP response code: 401 for URL: http://myserver/systemc-2.0.1.tgz
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
at java.net.URL.openStream(URL.java:1009)
at mypackage.Installer.installSystemc201(Installer.java:29)
at mypackage.Installer.main(Installer.java:38)
Merci,
source d'informationauteur user105413
Vous devez vous connecter pour publier un commentaire.
Vous étendez la Authentificateur de la classe et de l'enregistrer. La javadoc sur le lien expliquer comment.
Je ne sais pas si cela fonctionne avec le nio méthode qui a accepté de répondre à la question, mais elle pour s'assurer que les œuvres de l'ancienne c'était la réponse, sous celui-ci.
Au sein de l'authentificateur implémentation de la classe, vous allez probablement utiliser un PasswordAuthentication et remplacer le getPasswordAuthentication() la méthode de votre Authentificateur de mise en œuvre pour le retour. Qui sera la classe qui est transmis le nom d'utilisateur et un mot de passe dont vous avez besoin.
Selon votre demande, voici un exemple de code:
Et de vous inscrire dans la méthode main (ou quelque part le long de la ligne avant d'appeler l'URL):
L'utilisation est simple, mais je trouve l'API alambiqué et le type de l'arrière de la façon dont vous habituellement penser à ces choses. Assez typique de singleton conception.
C'est un code que j'ai écrit qui récupère un site web et affiche le contenu du Système.. Il utilise l'authentification de Base:
Des problèmes avec le code ci-dessus:
Ce code n'est pas prêt à la production (mais il obtient le point à travers.)
Le code des rendements cet avertissement du compilateur:
Un devrait vraiment utiliser l'Authentificateur de classe, mais pour la vie de moi, je ne pouvais pas comprendre comment et je ne pouvais pas trouver des exemples, qui va juste pour montrer que le Java gens n'ont pas réellement comme ça quand vous utiliser leur langue pour faire des choses cool. 😛
Ci-dessus n'est pas un bonne solution, mais il fonctionne et peut facilement être modifié plus tard.
Écrire votre classe prioritaire pour l'Authentificateur:
Écrire votre classe principale:
Avez-vous essayé la construction de votre URL dans le formulaire http://user:password@domain/path?
Je suggère de vérifier HttpClient de apache http://hc.apache.org/httpclient-3.x/ il rend le téléchargement/l'authentification très facile
Cette bibliothèque open source, http://spnego.sourceforge.neta aussi quelques exemples sur la façon de l'utiliser est SpnegoHttpURLConnection classe.
L'un des constructeurs de la classe vous permet de passer en un nom d'utilisateur et mot de passe.
Prendre un coup d'oeil à la classe java doc pour les exemples.