[英]HttpURLConnection Closing IO Streams
我是Java和HttpURLConnection的新手。 我應該在斷開連接之前關閉打開的IO流。 如果我關閉流,我是否還需要斷開連接? 哪種是正確的實施方式?
try {
String uri = "http://localhost:8081/RESTEASY/saju/post/text";
URL url = new URL(uri);
connection =
(HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "text/plain");
connection.setRequestProperty("Content-Type", "text/plain");
connection.setDoOutput(true);
OutputStream os = connection.getOutputStream();
//bla bla
System.out.println(connection.getResponseCode());
InputStream iStream = connection.getInputStream();
//bla bla
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
// os.close(); - IS THIS REQUIRED
// iStream.close(); - IS THIS REQUIRED
connection.disconnect();
}
}
完成使用后,應在輸入/輸出/錯誤流上調用close()
。
斷開連接更復雜。 根據disconnect()
的javadoc:
“表示在不久的將來不太可能向服務器發出其他請求。”
這意味着HTTP 1.1規范具有“持久連接”功能,允許在對同一服務器的一系列請求中使用相同的TCP / IP連接。 (這是透明的。)當您調用disconnect
,可能會將其視為關閉連接的提示。
所以從資源和性能的角度來看:
disconnect
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.