关于安卓的问题 我把HttpURLConnection定义的变量先赋值为null,进行链接的绑定,但
关于安卓的问题
我把HttpURLConnection定义的变量先赋值为null,进行链接的绑定,但是绑定不上去,一直显示为null,另一个BufferdReader也是这样,但我看网上的帖子或教程,他们这么写没问题,有哪位大佬知道问题出在哪吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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语言#的问题,请各位专家解答!