我该怎么做在Java中的HTTP GET? [重复] 我该怎么做在Java中的HTTP GET?

2019-05-05 18:45发布

这个问题已经在这里有一个答案:

  • 如何使用java.net.URLConnection中的火灾和处理HTTP请求 11个回答

我该怎么做在Java中的HTTP GET?

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


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

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



Answer 3:

如果你不想使用外部库,你可以从标准的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


Answer 4:

不需要第三方库它来创建一个最简单的方法URL对象,然后调用任何的openConnection或OpenStream的就可以了。 请注意,这是一个非常基本的API,所以你不会有很多在头控制。



文章来源: How do I do a HTTP GET in Java? [duplicate]