web-dev-qa-db-fra.com

Comment faire un HTTP GET en Java?

Comment faire un HTTP GET en Java?

135
David

Si vous souhaitez diffuser une page Web, vous pouvez utiliser la méthode ci-dessous.

import Java.io.*;
import Java.net.*;

public class c {

   public static String getHTML(String urlToRead) throws Exception {
      StringBuilder result = new StringBuilder();
      URL url = new URL(urlToRead);
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      conn.setRequestMethod("GET");
      BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
      String line;
      while ((line = rd.readLine()) != null) {
         result.append(line);
      }
      rd.close();
      return result.toString();
   }

   public static void main(String[] args) throws Exception
   {
     System.out.println(getHTML(args[0]));
   }
}
195
Kalpak

Techniquement, vous pouvez le faire avec un socket droit TCP. Je ne le recommanderais pas cependant. Je vous recommande fortement d'utiliser Apache HttpClient à la place. Dans sa forme la plus simple :

GetMethod get = new GetMethod("http://httpcomponents.Apache.org");
// execute method and handle any error responses.
...
InputStream in = get.getResponseBodyAsStream();
// Process the data from the input stream.
get.releaseConnection();

et voici un plus exemple complet .

55
cletus

Si vous ne souhaitez pas utiliser de bibliothèques externes, vous pouvez utiliser les classes URL et URLConnection de l'API standard Java.

Un exemple ressemble à ceci:

String urlString = "http://wherever.com/someAction?param1=value1&param2=value2....";
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
// Do what you want with that stream
35
HyLian

Le moyen le plus simple qui ne nécessite pas de bibliothèques tierces consiste à créer un objet URL , puis à appeler openConnection ou openStream . Notez qu’il s’agit d’une API assez basique, vous n’avez donc pas beaucoup de contrôle sur les en-têtes.

7
Laurence Gonsalves