web-dev-qa-db-fra.com

Comment utiliser cURL en Java?

Je suis un débutant dans Java et je voulais utiliser curl en Java. Quelle est ma question? Curl est intégré à Java ou je dois l'installer à partir de toute source tierce à utiliser avec Java. Si oui, comment installer curl en Java. Je recherche Google depuis longtemps, mais je n’ai trouvé aucune aide. J'espère que tout le monde pourra m'aider.

Merci d'avance.

85
moshfiqur

Vous pouvez utiliser Java.net.URL et/ou Java.net.URLConnection .

URL url = new URL("http://stackoverflow.com");

try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
    for (String line; (line = reader.readLine()) != null;) {
        System.out.println(line);
    }
}

Voir également le tutoriel simple d'Oracle sur le sujet. C'est cependant un peu prolixe. Pour finir avec un code moins détaillé, vous pouvez envisager à la place Apache HttpClient .

À propos: si votre prochaine question est "Comment traiter les résultats HTML?", La réponse est " tilisez un analyseur HTML . Non, n'utilisez pas regex pour cela =. ".

Voir également:

132
BalusC

Certaines personnes ont déjà mentionné HttpURLConnection , URL et RLConnection . Si vous avez besoin de tout le contrôle et des fonctionnalités supplémentaires que la bibliothèque curl vous fournit (et plus encore), je vous recommanderais httpclient d'Apache .

4
Seth

L’objet Runtime vous permet d’exécuter des applications de ligne de commande externes à partir de Java) et vous permettrait donc d’utiliser cURL. Toutefois, comme le montrent les autres réponses, il existe probablement un meilleur moyen de faites ce que vous essayez de faire.Si tout ce que vous voulez faire est de télécharger un fichier, l’objet URL fonctionnera à merveille.

3
mjh2007

En utilisant le standard Java libs, je suggère de regarder la classe HttpUrlConnection http://Java.Sun.com/javase/6/docs/api/Java/net/HttpURLConnection.html

Il peut gérer la plupart de ce que curl peut faire lors de l’établissement de la connexion. Ce que vous faites avec le flux dépend de vous.

2
Stevko

Curl est un programme non-Java et doit être fourni en dehors de votre programme Java.

Vous pouvez facilement obtenir une grande partie des fonctionnalités en utilisant Jakarta Commons Net , sauf s’il existe des fonctionnalités spécifiques comme "reprendre le transfert" dont vous avez besoin (ce qui est fastidieux pour coder par vous-même)