对于非常基本的问题,我很抱歉,我是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>
谢谢!
答案 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的新手并且打开(并且感谢)提示......