如何在Java中进行HTTP GET?

How do I do a HTTP GET in Java?

本问题已经有最佳答案,请猛点这里访问。

如何在Java中进行HTTP获取?


如果您想要传输任何网页,可以使用下面的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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]));
   }
}


从技术上讲,您可以使用一个直接的TCP套接字来完成它。但我不推荐。我强烈建议您改用ApacheHTTPClient。最简单的形式是:

1
2
3
4
5
6
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();

这里有一个更完整的例子。


如果不想使用外部库,可以使用标准Java API中的URL和URLCONTURE类。

一个例子如下:

2


最简单的方法是不需要第三方库来创建一个URL对象,然后调用OpenConnection或OpenStream。请注意,这是一个非常基本的API,因此您不会对头部有太多的控制。