如何在Java中进行HTTP GET?

时间:2009-09-28 06:37:44

标签: java http get httpurlconnection

如何在Java中进行HTTP GET?

4 个答案:

答案 0 :(得分:193)

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

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

答案 1 :(得分:54)

从技术上讲,你可以使用直接的TCP套接字。但我不推荐它。我强烈建议您改用Apache HttpClient。在simplest form

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

这是一个更complete example

答案 2 :(得分:34)

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

示例如下:

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

答案 3 :(得分:6)

最简单的方法是不要求第三方库创建URL对象,然后在其上调用openConnectionopenStream。请注意,这是一个非常基本的API,因此您无法对标头进行大量控制。