jce0217 2021-04-01 08:34 采纳率: 50%
浏览 4

关于安卓的问题 我把HttpURLConnection定义的变量先赋值为null,进行链接的绑定,但

关于安卓的问题 我把HttpURLConnection定义的变量先赋值为null,进行链接的绑定,但是绑定不上去,一直显示为null,另一个BufferdReader也是这样,但我看网上的帖子或教程,他们这么写没问题,有哪位大佬知道问题出在哪吗
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 19:08
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Android中,HttpURLConnection 是一个抽象类,它提供了许多方法来发送HTTP请求和处理响应。当使用 openConnection() 方法打开连接时,如果指定的URL无法访问(例如,服务器不可达),那么就会抛出一个 IOException

    你的代码中的错误在于尝试将一个已经关闭的连接对象 connection 重新分配给一个新的 HttpURLConnection 对象。在 Android 中,一旦你创建了一个 HttpURLConnection 对象并将其连接打开,你就不能再次改变它的状态或者属性。

    如果你想要重用一个已有的 HttpURLConnection 对象,并且希望在每次调用 readLine() 方法之前检查是否还有数据可以读取,你可以这样做:

    public void run() {
        HttpsURLConnection connection = null;
        try {
            URL url = new URL(spec: "https://www.csdn.net");
            connection = (HttpsURLConnection) url.openConnection();
            connection.setConnectTimeout(5000);
            connection.setRequestMethod("GET");
            connection.setReadTimeout(5000);
    
            // 创建一个缓冲区以缓存输入流
            InputStream inputStream = connection.getInputStream();
    
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            
            StringBuilder result = new StringBuilder();
            
            while ((line = reader.readLine()) != null) {
                result.append(line);
            }
    
            System.out.println(result.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    在这个例子中,我们首先创建了一个新的 HttpURLConnection 对象,然后通过 openInputStream() 方法获取了输入流。接着,我们创建了一个新的 BufferedReader 来缓存这个输入流,以便我们可以逐行读取其中的内容。最后,我们在循环中逐行读取输入流,并将每一行添加到结果字符串中。

    评论

报告相同问题?

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!