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,因此您不会对头部有太多的控制。