当前位置: 首页 > 面试题库 >

android java.net.ProtocolException:连接已建立

呼延高超
2023-03-14
问题内容
public static Bitmap getImage(String address) throws Exception {

    Bitmap imgmap = null;
    InputStream is = null;

    URL url = new URL(address);

    HttpURLConnection  conn = (HttpURLConnection)url.openConnection();
    try {
        conn.setRequestMethod("GET"); >>> here was been excuted,but go to finally block
        conn.setConnectTimeout(5000); 
        is = conn.getInputStream();
        byte[] imgbytes = StreamTool.getBytes(is);
        imgmap = BitmapFactory.decodeByteArray(imgbytes, 0, imgbytes.length);

    } finally {
        if (is != null) {
            is.close();
        }
        if (conn != null) {
            conn.disconnect();
        }
    }

    return imgmap;
}

conn.setRequestMethod("GET")受到谴责之前,请阻止已建立的异常连接。谁可以给我解决方案


问题答案:

那是因为setRequestMethod()必须在建立连接之前调用该函数。检查此链接

http://developer.android.com/reference/java/net/HttpURLConnection.html#setRequestMethod(java.lang.String)

因此最好在openConnection()之前调用它。或者根本不称呼它。



 类似资料:
  • 我正在编写一个简单的TCP客户端和服务器Perl脚本。到现在为止,我使用wireshark验证了三路TCP握手,并且建立了连接。但当我尝试发送或恢复数据时,什么也不会发生。 1)客户端和服务器之间的主要区别只是服务器增加了一个LISTEN参数,使它能够侦听传入的连接? 2)在recv和显示数据之间是否缺少任何步骤? 3)当程序第一次执行while循环时,难道不应该至少发送硬编码字符串“$respo

  • 我使用weblogic应用服务器和oracle数据库。我使用jdbc与oracle数据库通信。我从weblogic数据源获得连接,并向表中插入一条记录。问题是,当我想关闭连接(插入数据库后)时,我会遇到一个异常(连接已经关闭)。这是我的代码: 但是联系。close语句引发异常: 我试图避免连接。close语句(因为我教过连接是自动关闭的!!但过了一段时间,所有的连接都打开了,因此引发了一个异常)

  • 我用spring boot和hibernate做了一个DAO库。对DAO方法的所有单元测试都运行良好。但是当我在另一个spring boot项目中使用这个jar时,与数据源的JDBC连接已经建立,但是语句既没有准备也没有执行。DAO bean被正确注入,会话和事务打开。我没有其他错误或例外。 HiberNate统计记录如下: 有什么想法吗? 编辑:我的一些代码 DAO 实现: DAO接口: 自定义

  • SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: SQLAlchemy 1.4/2.0教程 |下一步: |next| 建立连接-引擎 任何SQLAlchemy应用程序的开始都是一个名为 Engine . 此对象充当连接到特定数据库的中心源,提供工厂和称为 connection pool 对于这些数据库连接。引擎通常是一个只为

  • 设备串口和OBLOQ串口在长时间不进行数据通信后可能会断开连接,通过这条指令可以让设备和OBLOQ之间保持一定频率的数据交换。 请求方式: "|1|3|2000|\r" 或者 "|1|3|-2|\r" 参数: 2000 设置心跳数据发送频率,单位:毫秒,2000表示2秒钟OBLOQ向通信的的设备发送一次数据 -2 参数为负数表示OBLOQ停止发送数据 返回值: "|1|3|\r" Arduino样

  • STOMP 一种简单的消息传递协议,最初创建用于脚本语言,其框架受 HTTP 启发。 STOMP 得到广泛支持,心脏长连接一小时左右失去连接 失去到未定义的连接-建立连接后失去连接非常适合在 WebSocket 和 web 上使用。 SockJS SockJS是WebSocket技术的一种模拟,在表面上,它尽可能使用原生webSocket API,但是再底层非常智能,优先使用原生WebSocket,如果在不支持WebSocket的浏览器中,会自动降为轮询的方式。