Android通过单元测试网络请求问题

单元测试中想使用okhttp但是发现okhttp回调方法不执行,发现网络请求是异步请求原因,导致断点不能拦截,

解决办法需要调用okhttp的同步请求方式进行网络请求,然后单元测试时选择debug模式执行,运行速度相对慢一些,可以得到Response,最后对Response进行操作就可以了。

下面是示例:

代码比较老,用的是对okhttp进行封装的库:

https://github.com/hongyangAndroid/okhttputils

这个库的同步请求和异步请求查看git中的文档,execute中传不传callback回调进行区分

同步请求只需要获取到Response就可以了

异步请求:

        Map map = new HashMap();map.put("username", "name");map.put("password", "pwd");MyOkHttpUtils.postJson().encrypt(true).url(URL).json(map).build().execute(new MyStringCallback() {@Overridepublic void onError(Call call, Exception e, int id) {}@Overridepublic void onResponse(String response, int id) {}@Overridepublic String parseNetworkResponse(Response response, int id) throws IOException {AesUtil aesUtil = new AesUtil();return aesUtil.getDecryptString(response);}});

同步请求:

        Map map = new HashMap();map.put("username", "name");map.put("password", "pwd");Response response = MyOkHttpUtils.postJson().encrypt(true).url(URl).json(map).build().execute();//获取到response后将response进行解密,得到body完整报文AesUtil aesUtil = new AesUtil();String body = aesUtil.getDecryptString(response);

Android单元测试网络请求问题相关推荐

  1. Android okHttp网络请求之缓存控制Cache-Control

    前言: 前面的学习基本上已经可以完成开发需求了,但是在项目中有时会遇到对请求做个缓存,当没网络的时候优先加载本地缓存,基于这个需求我们来学习一直okHttp的Cache-Control. okHttp ...

  2. android之网络请求 -- 获取RecyclerView的列表项(图片 + 文字)

    android之网络请求 -- 获取RecyclerView的列表项 示意图,网络请求的地址,插件及依赖 代码架构 代码内容 MainActivity.java activity_main.xml R ...

  3. 【小王的安卓之路】Android原生网络请求

    Android原生网络请求 一. 网络请求的必要性 二. 网络请求分类 三. 网络请求实现方法 四. 注意事项 一.网络请求的必要性: 如今单机APP早已经接近消失就连最简单的时钟日期等软件都需要去请 ...

  4. 『Android』网络请求数据与JSON解析

    『Android』网络请求数据与JSON解析

  5. 利用Fiddler对Android手机网络请求进行抓包

    在Android的开发调试过程中,特别是针对网络编程的情况,很多时候我们希望能够对Android的网络请求进行抓包,用来定位以及分析我们程序的问题.下面我介绍使用Fiddler对Android模拟器的 ...

  6. fiddler 只监听模拟器_利用Fiddler对Android模拟器网络请求进行抓包【转】

    在Android的开发调试过程中,特别是针对网络编程的情况,很多时候我们希望能够对Android的网络请求进行抓包,用来定位以及分析我们程序的问题.下面我介绍使用Fiddler对Android模拟器的 ...

  7. android封装网络请求界面,轻松搞定 android MVP 架构、okHttp 网络模块封装 的 项目...

    CommonMvp commonMvp 能做什么? 1.mvp 实现 model view presenter 业务和界面解耦 2.整合 网络 请求 3.简化网络调用流程 4.整合状态栏和标题栏 实现 ...

  8. http请求过程 Android,android HTTP网络请求回顾

    1.HTTP协议了解 http是一种应用层的协议,底层通过TCP来进行可靠的数据传输.HTTP是基于TCP的应用层协议,它在更高的层次封装了TCP的使用细节,使网络请求更加易用,TCP连接是因特网基于 ...

  9. Android开发——网络请求(一)网络请求的API、授权和方法

    网络请求的API 网络请求的授权 <!--网络权限--><uses-permission android:name="android.permission.INTERNET ...

最新文章

  1. 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)...
  2. 谈行业数字化转型,先要搞明白ICT生态的共赢共生
  3. ux和ui_如何为您的UX / UI设计选择正确的原型制作工具
  4. Git初始化配置以及配置github
  5. Eclipse配置jstl标准标签库详解
  6. 三个版本Eclipse区别
  7. 一道曾经微软的面试题
  8. jabberd2分析
  9. 黑马程序员-学习日记(单例设计模式的两种类型)
  10. 阿里云邮箱推送发送邮件 25端口禁用 问题
  11. 3D打印切片软件支撑算法研究
  12. transformer中的多头注意力机制
  13. excel随机数_Excel使用小技巧-Excel里快速生成随机数
  14. 串口调试助手出现乱码
  15. Building designing
  16. 原来iPhone自带Respring(注销重启桌面)功能
  17. 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...
  18. 养胃有道——送给胃不好的人 (转)
  19. BigData之Hadoop:Hadoop框架(分布式系统基础架构)的简介(两大核心【HDFS存储和MapReduce计算】)、深入理解、下载、案例应用之详细攻略
  20. 非递归中序遍历二叉树

热门文章

  1. 视频编解码学习之三:变换,量化与熵编码
  2. 突然很怀念在净月玩大富翁的日子
  3. C语言输入输出(左端对齐,右端对齐,对齐补零……)
  4. ConvNet---20年代的卷积神经网络
  5. Excel VBA 高级编程-客户跟进管理系统
  6. 橙子02-Hadoop生态系统
  7. L1_016查验身份证
  8. catboost和xgboost_算法竞赛开挂神器:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测...
  9. React中微信H5支付实现代码
  10. 伙伴们休息啦canvas绘图夜空小屋