如何在Java中从URL移动到URL(重用reader-object?)

时间:2018-02-16 15:18:53

标签: java

对于非常基本的问题,我很抱歉,我是Java新手。 要从URL获取数据,我使用这样的代码

URL url = new URL(BaseURL+"login?name=foo");
URLConnection yc = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
while ((inputLine = in.readLine()) != null)
  ...

完美无缺。当我现在想要继续并将下一个命令发送到服务器时(例如" ... / getStatus"),我是否需要一遍又一遍地创建这些对象,还是有更聪明的方法? / p>

谢谢!

2 个答案:

答案 0 :(得分:2)

您必须再次致电openConnection才能获得新的URLConnection。但是,HttpURLConnection会执行内部缓存,因此如果HTTP服务器支持Connection: keep-alive,则将重用与服务器的基础连接,因此它不会像最初看起来那样糟糕。它只是对你隐藏。

答案 1 :(得分:0)

我查看了Apache HttpComponents(HttpClient),它仍然需要很多代码。因为我不需要cookie处理(它只是一个简单的RESTful服务器,提供json-blocks作为响应)我想要一个非常简单的解决方案:

public static String readStringFromURL(String requestURL) throws IOException
{
   URL u = new URL(requestURL);
   try (InputStream in = u.openStream()) {
       return new String(in.readAllBytes(), StandardCharsets.UTF_8);
   }
}

对于我来说,这看起来是一个完美的解决方案,但如上所述,我是Java的新手并且打开(并且感谢)提示......