java - 从 Http 响应读取数据很少引发 BindException : Address already in use

标签 java http tomcat6

我使用以下代码从 http 请求中读取数据。 在一般情况下,它运行良好,但有时“httpURLConnection.getResponseCode()”会抛出 java.net.BindException: Address already in use: connect

     ............
     URL url = new URL( strUrl );
     httpURLConnection = (HttpURLConnection)url.openConnection();
     int responseCode = httpURLConnection.getResponseCode();
     char charData[] = new char[HTTP_READ_BLOCK_SIZE];
     isrData = new InputStreamReader( httpURLConnection.getInputStream(), strCharset );
     int iSize = isrData.read( charData, 0, HTTP_READ_BLOCK_SIZE );
     while( iSize > 0 ){
            sbData.append( charData, 0, iSize );
            iSize = isrData.read( charData, 0, HTTP_READ_BLOCK_SIZE );
     }
     .................





 finally{
            try{
                if( null != isrData ){
                    isrData.close();
                    isrData = null;
                }

                if( null != httpURLConnection ){
                    httpURLConnection.disconnect();
                    httpURLConnection = null;
                }

                strData = sbData.toString();
             }
            catch( Exception e2 ){
            }

代码运行在Java 1.6,Tomcat 6。 谢谢

最佳答案

去掉 disconnect() 并关闭 Reader。您的本地端口用完了,使用 disconnect() 会禁用 HTTP 连接池,这是解决该问题的方法。

关于java - 从 Http 响应读取数据很少引发 BindException : Address already in use,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4205210/

相关文章:

java - JDK 中是否定义了 HTTP 和 HTTPS 默认端口号?

python - 异步执行服务器端 Unix 脚本

logging - 启动 tomcat 作为服务不登录 catalina.out

tomcat - 运行 shutdown.bat 关闭了错误的 Tomcat 实例

java - 使用 JMS 安排 Azure 服务总线的消息

java - 我如何将EntityManager传递给@PostUpdate

JavaFX 项目无法使用 Java 11 找到外部库

java - 如何将服务器证书添加到本地受信任的 Java keystore ?

android - 将 PNG 文件上传到服务器后无法正常工作

java - 在 Tomcat 6.0.28 下运行的 JAX-WS Web 服务出现问题