当前位置: 首页 > 知识库问答 >
问题:

HTTP客户端必须关闭连接吗

郎献
2023-03-14

我有一个servlet,它以XML格式响应。

客户端通过HttpSurlConnection连接到这个servlet。现在,如果客户端不调用connection.disconnect()会有问题吗?

url = "https://abc.com/ws/servlet?task=login"

openconnection()...
        HttpsURLConnection conn = null;
        InputStream inputstream = null;
        try{

            URL url = new URL("https://abc.com/ws/servlet");
            SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();

            conn = (HttpsURLConnection)url.openConnection();
            conn.setSSLSocketFactory(sslsocketfactory);
            inputstream = conn.getInputStream();

            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(inputstream);

            ......;

        }catch(Exception ex){
            ex.printStackTrace();
        }
        finally{
            try {
                if( inputstream != null )
                    inputstream.close();
                if( conn != null )
                    //conn.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

非常感谢。

共有1个答案

金令
2023-03-14

disconnect()方法是为了向底层HTTP连接池发出信号,表明您在不久的将来不太可能连接到这个URL,因此不再需要池连接。除非在这种情况下,否则不需要调用它。但是,您确实需要关闭连接的输出和输入流,以便将其释放回池。池将负责关闭空闲或死机连接本身。

 类似资料:
  • socket.io 0.9 node.js 0.10.15 速递3.3.4 即:调用 --服务器端 --客户端

  • 问题内容: 如何关闭客户端的套接字连接? 我在用: socket.io 0.9 node.js 0.10.15 express3.3.4 即:呼叫 -服务器端 - 客户端 如果加载测试页,则需要来自服务器的一些值(getInitData)。 在第一页上,我获取一次数据,在重新加载或第二遍上,我获取两次数据,依此类推。 重新加载页面以及离开页面后,服务器端的连接将自动关闭。 但是在客户端,连接仍然打

  • 我刚刚开始使用hazelcast[3.3.1]。根据hazelcast应用程序和客户端教程,我创建了一个hazelcast应用程序实例和一个客户端(使用eclipse IDE)。 从客户端,我能够将对象添加到地图并成功获取它们。但是,我在实例的控制台上看到以下警告,它们似乎警告客户端断开连接。这是每个客户端get/put的正常行为吗? 在退出客户端程序之前,是否有适当的方法断开客户端与实例的连接?

  • 问题内容: 我应该在哪里关闭与Elasticsearch客户端的连接?我正在使用Spring,并且我不想使用Elasticsearch集成,因为我想学习如何首先完成它。应该只为该应用程序创建一个客户端吗?意味着它将具有单例范围?还是应该具有原型范围并为每次交互关闭连接? 问题答案: 您应该为每个应用程序使用一个客户端,使其成为单例并在应用程序关闭时关闭。

  • 我试图理解netty http客户端连接池。如果是NIO和异步的,那么这个连接池的意义是什么? 例如:如果服务A调用服务B,并且服务A的客户端连接池计数设置为50,那么这是否意味着我们最多只能发出50个并行请求? 更新: 我在3.5秒内完成了所有通话。理想情况下,有一个连接,我应该在150秒内完成。

  • 我遇到了一个有趣的问题,HTTP 1.1 POST请求的TCP连接在请求之后立即关闭(即,在服务器可以发送响应之前)。 关于测试环境的一些细节: 客户端-Windows XP、Internet Explorer 8、Flash player 12。 服务器-Java 7 在上述行为之前,我们有几个长期存在的TCP连接,每个都被重用用于多个HTTP请求;我们打开一个长轮询,当这个轮询完成时,打开另一