Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中实现HTTP GET?_Java_Http_Get_Httpurlconnection - Fatal编程技术网

如何在Java中实现HTTP GET?

如何在Java中实现HTTP GET?,java,http,get,httpurlconnection,Java,Http,Get,Httpurlconnection,如何在Java中实现HTTP GET?从技术上讲,您可以使用直接的TCP套接字实现。然而,我不推荐它。我强烈建议你改用。在其: 这里有一个更详细的说明。如果你想流式处理任何网页,你可以使用下面的方法 import java.io.*; import java.net.*; public class c { public static String getHTML(String urlToRead) throws Exception { StringBuilder resul

如何在Java中实现HTTP GET?

从技术上讲,您可以使用直接的TCP套接字实现。然而,我不推荐它。我强烈建议你改用。在其:


这里有一个更详细的说明。

如果你想流式处理任何网页,你可以使用下面的方法

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");
      try (var reader = new BufferedReader(
                  new InputStreamReader(conn.getInputStream()))) {
          for (String line; (line = reader.readLine()) != null; ) {
              result.append(line);
          }
      }
      return result.toString();
   }

   public static void main(String[] args) throws Exception
   {
     System.out.println(getHTML(args[0]));
   }
}

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

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

@HyLian:考虑到OP问题的明显程度,你的代码片段应该包括一个try{}finally{}来整理。@Stephen C:当然,那只是一个代码片段,用来显示游戏中的类以及如何使用它们。如果你把它放在一个真实的程序中,你应该使用例外规则:)InpuTSteam=服务器发送给我们的所有GET?你需要包括问题的“GET”部分-这忽略了GET-请参阅下面的答案cletus的答案的优点之一(使用Apache HttpClient)HttpClient可以自动为您处理重定向和代理身份验证。这里使用的标准JavaAPI类并不适合您。另一方面,使用标准API类的优点是您不需要在项目中包含第三方库。URL类也无法获取用于解码结果的字符集。+1表示完整的代码示例很好,但最好捕获IOException而不是“general”异常。必须设置超时,否则当前线程可能被阻塞。请参阅
setConnectTimeout
setReadTimeout
。此项目已结束。
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