Как сделать HTTP GET в Java?

Как сделать HTTP GET в Java?

Ответ 1

Если вы хотите передать любую веб-страницу, вы можете использовать следующий метод.

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]));
   }
}

Ответ 2

Технически вы можете сделать это с помощью прямого сокета TCP. Однако я бы не рекомендовал его. Я бы настоятельно рекомендовал вместо этого использовать Apache HttpClient. В простейшая форма:

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();

и вот более подробный полный пример.

Ответ 3

Если вы не хотите использовать внешние библиотеки, вы можете использовать классы URL и URLConnection из стандартного API Java.

Пример выглядит следующим образом:

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

Ответ 4

Простейший способ, которым не требуется сторонние библиотеки, создать объект URL, а затем вызвать либо openConnection или openStream. Обратите внимание, что это довольно простой API, поэтому у вас не будет большого контроля над заголовками.