使用连接后需要调用java.net.HttpURLConnection.disconnect()吗?

sro*_*roj 1 java android http httpurlconnection

java.net.HttpURLConnection在Android上使用(API 16).我使用connect()然后getInputStream()获取InputStream从连接读取数据.在我使用InputStream(即消耗数据)后,我close().

问题是:这是否也会关闭基础HttpURLConnection(就像通过调用disconnect()它一样)?我的猜测不是,但我只是想证实这一点.更一般的问题是:当连接不再有用时,我是否需要调用java.net.HttpURLConnection.disconnect()?

问题是我有一个方法来打开一个HttpURLConnection给定的主机.签名是:InputStream OpenHttpConnection(String stringURL, String method).返回一个InputStream,调用者用来从连接中读取数据,但如果我disconnect()从该方法的主体内调用,则InputStream关闭并变得无用(我已经确认了这一点).但是,如果,在另一方面,是不是当我打电话关闭了连接close()InputStream,从主叫方,那么我就会有浪费资源的连接.

有什么建议?

Dev*_*red 7

disconnect()如果它们仍处于打开状态,则调用会关闭基础流,但它还会将连接的资源释放回连接池,因此,即使您已经能够(并且已完成连接),仍然可以调用它.在其他地方离散地关闭溪流.