我正在尝试连接到一个我知道存在的URL,但我不知道何时。 我无法访问此服务器,因此无法更改任何内容以接收事件。
实际代码就是这个。
URL url = new URL(urlName);
for(int j = 0 ; j< POOLING && disconnected; j++){
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
int status = connection.getResponseCode();
if(status == HttpURLConnection.HTTP_OK || status == HttpURLConnection.HTTP_NOT_MODIFIED){
//Some work
}else{
//wait 3s
Thread.sleep(3000);
}
}
Java不是我最好的技能,从性能的角度来看,我不确定这段代码是否合适。 我每隔3秒打开一个新连接?或连接被重用?
如果我调用disconnect(),我确保循环中没有打开新连接,但是......它会影响性能吗?
连连呢?知道URL存在的快速/最佳方式是什么?
答案 0 :(得分:0)
从性能的角度来看,这段代码是可以的,它每次都会创建一个新的连接。无论如何,如果循环中有Thread.sleep(3000)
,则不必担心性能;)
如果您担心服务器端的连接使用情况,可以查看apache HTTP client,它有很多功能。我认为它默认处理保持连接的连接。
答案 1 :(得分:0)
1)使用断开连接,您不希望使用多个打开的连接。丢弃您不使用的资源是任何语言的基本习惯
2)我不知道每3秒打开和关闭新的网络连接是否会污染系统资源,检查它的唯一方法就是尝试。
3)您可能想要观看“ConnectException”,如果“URL [不存在]”则表示服务器已关闭。