【发布时间】:2016-05-14 12:47:33
【问题描述】:
在阅读了有关 Java HttpURLConnection 的各种文档后,我仍然对它执行哪种池以及如何处理连接感到很困惑。
比如下面的代码
URL url = new URL(someUrl);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
OutputStream os = connection.getOutputStream();
InputStream is = connection.getInputStream();
/** Write something to os and flush */
/** Read from is */
os.close();
is.close();
connection.disconnect();
os和is是否需要刷新和关闭才能使底层套接字可重用?connection.disconnect()是否会关闭底层套接字(从而使其不可重用)?keep-alive会影响这种行为吗?如果我使用不同的 URL 对象,但使用相同的 URL,从它们创建的
connections 是否会共享底层套接字?当 URL 的 host 部分相同,但路径不同时呢?何时会销毁池连接?
控制池大小的系统属性是什么?
此外,如果您还可以将 Android 版本与 Java 进行比较,那就太好了。
谢谢
【问题讨论】: