OkHttp是可以说是Android开发中,每个项目都必需依赖的网络库,我们可以很便捷高效的处理网络请求,极大的提升了编码效率。但是有时候,我们使用OkHttp也会遇到这样的问题
E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
E AndroidRuntime: Process: com.example.okhttpexceptionsample, PID: 13564
E AndroidRuntime: java.lang.NullPointerException: blablabla
E AndroidRuntime: at com.example.okhttpexceptionsample.MainActivity$createNPEInterceptor$1.intercept(MainActivity.kt:61)
E AndroidRuntime: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:112)
E AndroidRuntime: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:87)
E AndroidRuntime: at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.kt:184)
E AndroidRuntime: at okhttp3.RealCall$AsyncCall.run(RealCall.kt:136)
E AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.j
OkHttp是可以说是Android开发中,每个项目都必需依赖的网络库,我们可以很便捷高效的处理网络请求,极大的提升了编码效率。但是有时候,我们使用OkHttp也会遇到这样的问题一.崩溃的stacktrace E AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher E AndroidRuntime: Process: com.exampl...
性能优化,有时候看起来是一个比较虚的技术需求。除非
代码
慢的已经让人无法忍受,否则,很少有公司会有觉悟投入资源去做这些工作。即使你有了性能指标数据,也很难说服领导做一个由耗时300ms降低到150ms的改进,因为它没有业务价值。
这很让人伤心,但这是悲催的现实。
性能优化,通常由有技术追求的人发起,根据观测指标进行的正向优化。他们通常具有工匠精神,对每一毫秒的耗时都吹毛求疵,力求完美。当然,前提是你得有时间。
1. 优化背景和目标
我们本次的性能优化,就是由于达到了无法忍受的程度,才进行的优化...
在SpringBoot项目直接使用
okhttp
、httpClient或者RestTemplate发起HTTP
请求
,既繁琐又不方便统一管理。因此,在这里推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架retrofit-spring-boot-starter,使用非常简单方便,同时又提供诸多功能增强。目前项目已经更新至2.2.2版本,并且会持续进行迭代优化。
github项目地址:
https://github.com/LianjiaTech/retrofit-spring-boot-st
在SpringBoot项目直接使用
okhttp
、httpClient或者RestTemplate发起HTTP
请求
,既繁琐又不方便统一管理。因此,在这里推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架retrofit-spring-boot-starter,使用非常简单方便,同时又提供诸多功能增强。目前项目已经更新至2.2.2版本,并且会持续进行迭代优化。
项目地址:https://github.com/LianjiaTech/retrofit-spring-boot-starter
作为新手,往往照着写
代码
会出现很多的bug。有时候还真要看看Logcat里面的报错,然后百度一下,你就会发现,大家都遇到过。
我遇到的问题:
1.运行闪退:其实是没加权限,既然使用
OkHttp
肯定要获取网络权限,添加
<uses-permission
android
:name="
android
.permission.INTERNET"/>
2.无法调用runOnUi...
「
okhttp
3 4.9.3 版本简单解析」
一、写在前面
关于
okhttp
3的解析网上已经有非常多优秀的博文了,每每看完都觉得醍醐灌顶,豁然开朗。但等不了几天再回头看,还是跟当初一样陌生,究其根本原因,我们不过是在享受着别人的成果跟着别人的思路云阅读源码了一遍。
okhttp
从早期的Java版本到Kotlin版本一直不断优化升级,实现细节上也作出了调整。重读源码加上自身的思考能深刻的理解
okhttp
的实现原理。
二、从基本使用说起
项目中引入依赖,Github地址
okhttp
dependencies
OkHttp
之 网络
请求
耗时统计
OkHttp
3.11.0版本提供了EventListener接口,可以让调用者接收一系列网络
请求
过程中的事件,例如DNS解析、TSL/SSL连接、Response接收等。通过继承此接口,调用者可以监视整个应用中网络
请求
次数、流量大小、耗时情况。
使用方法如下:
public class HttpEventListener extends Event...
Response response = client.newCall(request).execute();
String responseData = response.body().string();
其中,client 是
OkHttp
Client 类的实例,Request 是
okhttp
3.Request 类的实例,Response 是
okhttp
3.Response 类的实例。在这个例子中,我们使用
OkHttp
Client 发送一个 GET
请求
,
请求
的 URL 是 http://www.example.com,然后获取服务器返回的数据。