Android单元测试网络请求问题
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单元测试网络请求问题相关推荐
- Android okHttp网络请求之缓存控制Cache-Control
前言: 前面的学习基本上已经可以完成开发需求了,但是在项目中有时会遇到对请求做个缓存,当没网络的时候优先加载本地缓存,基于这个需求我们来学习一直okHttp的Cache-Control. okHttp ...
- android之网络请求 -- 获取RecyclerView的列表项(图片 + 文字)
android之网络请求 -- 获取RecyclerView的列表项 示意图,网络请求的地址,插件及依赖 代码架构 代码内容 MainActivity.java activity_main.xml R ...
- 【小王的安卓之路】Android原生网络请求
Android原生网络请求 一. 网络请求的必要性 二. 网络请求分类 三. 网络请求实现方法 四. 注意事项 一.网络请求的必要性: 如今单机APP早已经接近消失就连最简单的时钟日期等软件都需要去请 ...
- 『Android』网络请求数据与JSON解析
『Android』网络请求数据与JSON解析
- 利用Fiddler对Android手机网络请求进行抓包
在Android的开发调试过程中,特别是针对网络编程的情况,很多时候我们希望能够对Android的网络请求进行抓包,用来定位以及分析我们程序的问题.下面我介绍使用Fiddler对Android模拟器的 ...
- fiddler 只监听模拟器_利用Fiddler对Android模拟器网络请求进行抓包【转】
在Android的开发调试过程中,特别是针对网络编程的情况,很多时候我们希望能够对Android的网络请求进行抓包,用来定位以及分析我们程序的问题.下面我介绍使用Fiddler对Android模拟器的 ...
- android封装网络请求界面,轻松搞定 android MVP 架构、okHttp 网络模块封装 的 项目...
CommonMvp commonMvp 能做什么? 1.mvp 实现 model view presenter 业务和界面解耦 2.整合 网络 请求 3.简化网络调用流程 4.整合状态栏和标题栏 实现 ...
- http请求过程 Android,android HTTP网络请求回顾
1.HTTP协议了解 http是一种应用层的协议,底层通过TCP来进行可靠的数据传输.HTTP是基于TCP的应用层协议,它在更高的层次封装了TCP的使用细节,使网络请求更加易用,TCP连接是因特网基于 ...
- Android开发——网络请求(一)网络请求的API、授权和方法
网络请求的API 网络请求的授权 <!--网络权限--><uses-permission android:name="android.permission.INTERNET ...
最新文章
- 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)...
- 谈行业数字化转型,先要搞明白ICT生态的共赢共生
- ux和ui_如何为您的UX / UI设计选择正确的原型制作工具
- Git初始化配置以及配置github
- Eclipse配置jstl标准标签库详解
- 三个版本Eclipse区别
- 一道曾经微软的面试题
- jabberd2分析
- 黑马程序员-学习日记(单例设计模式的两种类型)
- 阿里云邮箱推送发送邮件 25端口禁用 问题
- 3D打印切片软件支撑算法研究
- transformer中的多头注意力机制
- excel随机数_Excel使用小技巧-Excel里快速生成随机数
- 串口调试助手出现乱码
- Building designing
- 原来iPhone自带Respring(注销重启桌面)功能
- 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...
- 养胃有道——送给胃不好的人 (转)
- BigData之Hadoop:Hadoop框架(分布式系统基础架构)的简介(两大核心【HDFS存储和MapReduce计算】)、深入理解、下载、案例应用之详细攻略
- 非递归中序遍历二叉树