103 votes

Comment utiliser cURL en Java ?

Je suis un débutant en java et je voulais utiliser curl en java. Ma question est de savoir si curl est intégré à Java ou si je dois l'installer à partir d'une source tierce pour l'utiliser avec Java. Si oui, comment installer curl en Java. J'ai cherché sur Google pendant un long moment mais je n'ai pas trouvé d'aide. J'espère que quelqu'un pourra m'aider.

Merci d'avance.

0 votes

@skaffman : Rien encore. Je suis un programmeur PHP qui a récemment essayé Java. Je suis donc naturellement très habitué à curl. Ainsi, tout en travaillant sur java comme un novice, cette question me vient à l'esprit, encore par curiosité mais je suis sûr que dans un avenir proche, j'en aurai besoin. Si quelqu'un connaît une meilleure alternative à curl en Java, merci de partager. Ce sera très très utile. Merci.

1 votes

0 votes

Je demande parce que CURL fait tout un tas de choses, dont certaines sont intégrées à Java et d'autres non. Des exigences plus spécifiques seraient d'une grande aide ici.

143voto

BalusC Points 498232

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

URL url = new URL("https://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 aussi le Le tutoriel simple d'Oracle sur le sujet. Il est cependant un peu verbeux. Pour aboutir à un code moins verbeux, vous pouvez envisager de Apache HttpClient à la place.

À propos : si votre prochaine question est "Comment traiter le résultat HTML ?", alors la réponse est " Utiliser un analyseur HTML . Non, n'utilisez pas d'expressions rationnelles pour cela. .".

Voir aussi :

0 votes

@BalusC : Merci. Je fais quelques études à partir des liens que vous avez fournis. En fait, connaissez-vous une meilleure alternative à curl en Java, qui offre les mêmes fonctionnalités que curl ? Merci encore.

7 votes

Comme mentionné, HttpClient est "la meilleure alternative". Vous pouvez en effet tout faire avec URLConnection il faut encore connaître et comprendre les spécifications HTTP. Par ailleurs, n'essayez pas de comparer PHP et Java. C'est comme des pommes et des oranges. Pour éviter les problèmes et les confusions, oubliez plutôt PHP et portez un regard neuf sur Java. C'est un langage avec une idéologie complètement différente. PS : Je fais les deux, donc je parle d'expérience.

0 votes

Comme cette personne et d'autres l'ont mentionné, utilisez HttpClient. Je vous recommande vraiment d'éviter d'utiliser libcurl, vous devez vous assurer que vous mettez en paquet la bibliothèque native pour chaque plateforme que vous voulez supporter et tôt ou tard, quelqu'un se plaindra que ça ne fonctionne pas sur son vieux Power Mac ou sa station de travail SGI.

9voto

mpurinton Points 105

Je vous suggère d'utiliser libcurl avec Java pour vos méthodes curl. Utilisez libcurl directement à l'intérieur des programmes Java en utilisant cette liaison. Téléchargez le paquet 'curl-java' depuis www.gknw.net et utilisez-le. Paquet Tar : http://www.gknw.net/viewvc/trunk/?Root=curl-java&view=tar

5voto

Seth Points 2105

Certaines personnes ont déjà mentionné HttpURLConnection , URL et URLConnection . Si vous avez besoin de tout le contrôle et des fonctionnalités supplémentaires que la bibliothèque curl vous offre (et plus encore), je vous recommande Le client http d'Apache .

4voto

mjh2007 Points 520

En Temps d'exécution vous permet d'exécuter des applications externes en ligne de commande à partir de Java et vous permettrait donc d'utiliser cURL. Cependant, comme l'indiquent les autres réponses, il existe probablement une meilleure façon de faire ce que vous essayez de faire. Si tout ce que vous voulez faire est de télécharger un fichier, l'objet URL fonctionnera parfaitement.

3voto

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

Vous pouvez facilement obtenir la plupart des fonctionnalités en utilisant Jakarta Commons Net sauf si vous avez besoin d'une fonctionnalité spécifique telle que le "transfert de CV" (qui est fastidieuse à coder par vous-même).

0 votes

Joli, mais Commons Net va un peu (trop) loin que le curl.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X