当前位置: 首页 > news >正文

Android之通过HttpURLConnection.getResponseCode状态码抛出异常的问题以及解决方法

1.最近,在学习解析json数据的时候遇到一个错误信息,错误信息如下图所示:

 
发现解析出来的数据为空,错误信息如上图所示,发现程序中的HttpUtils工具类的22行出现了错误和MainActivity类的onClick方法的52出现了错误,因此我去寻找了一下这两个类报错的所在行,看看是否代码写错,因为我也是学习的,所以代码写错也很正常。
2.HttpUtils类的22行代码如下图所示:
 
发现并没有写错方法,再看下MainActivity类的onClick方法的52行,如下图所示:
 
发现这行代码竟是调用上面的那个HttpUtils类的getJsonContent(url_path)方法,那我觉得应该是上面通过HttpURLConnection访问网络请求可能出现错误,于是我上网查找资料,经过测试这些代码都没问题。
3.那么问题出现在哪里呢?其实我们找到了代码报异常的地方,但是我们并没有把完整打印在Log的异常信息看全,我再次附上Log所打印的错误信息,一看便明白了,如下图所示:
 
如上图所示,报错的异常为Android.os.NetworkOnMainThreadException异常,意思是安卓操作系统的网络工作在主线程异常,就是在网络通信中在主线程工作中的异常,所以必须在另一个线程工作,所以,上述的代码没问题,问题在于HttpUtils类的getJsonContent(url_path)方法时对网络进行操作不能在主线程里进行调用,必须新建一个线程进行网络操作,因此,我们必须在MainActivity类的onClick()方法调用那个getJsonContent(url_path)方法里用一个新线程来访问,进行网络通信。
4.所以,我们开启一个新线程,这个新线程专门来处理对访问网络,进行网络通信工作的那个方法。即使用多线程的方法,因此,MainActivity类中的那个onClick()方法中的52行可改为如下图所示,即可:
 
这样有时还会报同样的错误,此时就该在线程中利用Handle消息机制进行处理。

相关文章:

  • Dropcam摄像头:透过我的眼睛辨出你是谁
  • webservice fail protected mode
  • 第20条:类层次优于标签类
  • css属性的继承、初识值、计算值、当前值、应用值
  • redis以及php的redis扩展安装部署
  • Gartner表示安全分析可能是安全风险检测的关键
  • 掌众金融:业务主体变更掌众金服
  • 营造平安 信息化使公交事业更加人性化
  • 减少二次开发成本 无缝融入当前流程
  • 前瞻WCTF世界黑客大师赛10大看点
  • VMware在VMworld大会将会推出什么新东西?
  • 梭子鱼公布“三管齐下”战略
  • 企业客户应该对安全厂商提出的三个问题
  • IT运营是IT运维的下一个出口?
  • 南方周末:阿里巴巴的大数据梦
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【刷算法】从上往下打印二叉树
  • canvas 高仿 Apple Watch 表盘
  • Java多线程(4):使用线程池执行定时任务
  • Java基本数据类型之Number
  • Lucene解析 - 基本概念
  • Promise初体验
  • vue 配置sass、scss全局变量
  • 开源SQL-on-Hadoop系统一览
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 手写一个CommonJS打包工具(一)
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 通信类
  • 网络应用优化——时延与带宽
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • gunicorn工作原理
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​水经微图Web1.5.0版即将上线
  • (03)光刻——半导体电路的绘制
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (五)网络优化与超参数选择--九五小庞
  • (一)VirtualBox安装增强功能
  • .bashrc在哪里,alias妙用
  • .net Signalr 使用笔记
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @EventListener注解使用说明
  • @html.ActionLink的几种参数格式
  • @在php中起什么作用?
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [ 数据结构 - C++] AVL树原理及实现