- 博客(25)
- 资源 (5)
- 收藏
- 关注
原创 OKHTTP系列(十一)---自定义拦截器之登录验证再请求拦截器(刷新token再请求)
一、前言在上一篇博文中,我们介绍了怎么自定义拦截器添加公共参数和设置请求头参数,在这里,讲解一下,自定义一个拦截器去验证登陆是否过期,然后做一些相应的操作,流程如下:二、RefreshTokenInterceptor类/** * @author Freak * @date 2019/6/15. */public class RefreshTokenIntercept...
2019-07-13 13:33:11 4014 2
原创 OKHTTP系列(十)---自定义拦截器之添加公共参数拦截器
一、前言在前面,我们在讲拦截器的时候也讲到了拦截器的调用顺序,会优先调用自定义的拦截器,然后才会调用之后的几个拦截器。这里就不多说了,具体的查看博文OKHTTP系列(三)--拦截器Interceptor概述二、自定义拦截器自定义一个拦截器类,实现Interceptor接口,如下所示/** * 添加公共参数 * * @author freak * @date 2019/3/1...
2019-07-13 13:32:57 2067
原创 okhttp系列导航
OKHTTP系列(一)----结构简介OKHTTP系列(二)--请求与响应流程OKHTTP系列(三)--拦截器Interceptor概述OKHTTP系列(四)--拦截器之RetryAndFollowUpInterceptor重定向拦截器OKHTTP系列(五)--拦截器之BridgeInterceptor连接桥拦截器OKHTTP系列(六)--拦截器之CacheIntercept...
2019-07-13 09:57:38 307
原创 webview系列导航
webView系列(一)----相关类介绍webView系列(二)----WebSettingswebView系列(三)----WebViewClientwebView系列(四)----WebChromeClientwebView系列(五)----历史记录webView系列(六)----webview ApiwebView系列(七)----webview加载顺序web...
2019-07-13 09:54:18 805
原创 webView系列(十)----自动登录(刷新token持久化登录)
一、前言在上一篇博文webView系列(九)----登录验证中,我们将到了登录验证,验证token失效后,就会到登陆页面重新登陆,这样用户觉得登陆的比较麻烦,想达到登陆一次,就很久都不需要登陆了,只要一直使用APP就不会,几天不使用都不会退出登录。为达到这样的效果,我们将讲解自动登录。二、自动登录/** * api>=21调用 * @param view * @param...
2019-07-13 09:39:20 3836
原创 webView系列(九)----登录验证
一、前言在上一遍博文webView系列(八)----拼接参数中,我们讲到如何拼接token,拼接token的目的我们也都知道,就是为了识别用户已经登陆了,相当于网页中的cookie(也可以使用cookie,这里就不做介绍),但是虽然是拼接了token了,但是token是有过期时间的,我们怎么才能知道token过期了呢?接下来我们就开始讲解登陆验证。二、登陆验证/** * api&g...
2019-07-13 09:38:58 998
原创 webView系列(八)----拼接参数
一、前言如果项目是进行了三端的开发,而且移动端使用了webview进行混合开发的话,在此时,我们登陆信息就需要拼接到url后面了。如果只是进行一次拼接,那这个很方便,直接在加载url的时候就把登陆信息(token以下都写token)拼接到url里面进行load。但是如果想达到在进入网页的每一个页面都进行token的拼接呢?请继续看下去。二、token拼接@RequiresApi(...
2019-07-13 09:38:36 1885
原创 webView系列(七)----webview加载顺序
一、普通网页加载流程(一开始传入url) WebChromeClient getVisitedHistory WebChromeClient onProgressChanged WebViewClient shouldInterceptRequest(WebView view, final WebResourceRequest request) WebCh...
2019-07-13 09:38:16 1960
原创 webView系列(六)----webview Api
一、加载网页/** * 加载URL指定的网页 * * @param url 访问地址 */@Overridepublic void loadUrl(String url) { super.loadUrl(url);}/** * 携带http headers加载URL指定的网页 * * @param url 访问地址 * @...
2019-07-13 08:13:12 533
原创 webView系列(五)----历史记录
一、概述在每次访问一个网页的时候,webview都会记录访问的地址,保存了一个堆栈中,这就是我们要说的浏览历史记录。网页进行加载时,都会调用doUpdateVisitedHistory(WebView view, String url, boolean isReload)方法去更新历史记录。注意:doUpdateVisitedHistory(WebView view, String url...
2019-07-12 17:15:33 4455
原创 webView系列(四)----WebChromeClient
private WebChromeClient mWebChromeClient = new WebChromeClient() { /** * <video /> 控件在未播放时,会展示为一张海报图,HTML中可通过它的'poster'属性来指定。 * 如果未指定'poster'属性,则通过此方法提供一个默认的海报图。 * * @re...
2019-07-12 17:01:45 516
原创 webView系列(三)----WebViewClient
private WebViewClient mWebViewClient = new WebViewClient() { /** * 通知应用可以将当前的url存储在数据库中,意味着当前的访问url已经生效并被记录在内核当中。 * 此方法在网页加载过程中只会被调用一次。 * 此方法在进行加载url时会更新历史记录 ...
2019-07-12 17:00:49 1888
原创 webView系列(二)----WebSettings
WebSettings settings = mWebView.getSettings();/** * 设置userAgent用户表示,可以给服务器区分是否是移动端访问 */settings.setUserAgentString(settings.getUserAgentString().concat("userAgent"));/** * 根据menuItems标志禁用动作模式菜单...
2019-07-12 17:00:01 1006
原创 webView系列(一)----相关类介绍
WebViewDatabase存储与管理以下几类浏览数据表单自动填充的用户名和密码; HTTP认证的用户名和密码; 曾经输入过的文本;WebViewClient一个web客户端,可自定义实现。WebChromeClient谷歌web客户端。WebViewAndroid的控件,可以在xml中使用,也可以使用动态添加的方式使用。WebStorage该类用于管理...
2019-07-12 16:59:44 1036
原创 OKHTTP系列(九)---http请求头(header)作用
前言在项目开发中,网络请求是必不可少的 ,在http方面的知识学习也是不能拉下的,这里就做一波http请求头的记录。Header:请求头个别参数和描述Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html,application/json Accept-Charset 浏览器...
2019-07-11 10:03:06 5631
原创 OKHTTP系列(八)--拦截器之CallServerInterceptor请求服务器拦截器
这是链中的最后一个拦截器。 它会对服务器进行网络请求。我们通过ConnectInterceptor已经连接到服务器了,接下来我们就是写入请求数据以及读出返回数据了。整个流程:写入请求头 写入请求体 读取响应头 读取响应体CallServerInterceptor类public final class CallServerInterceptor implements Interc...
2019-07-10 21:06:23 285
原创 OKHTTP系列(七)--拦截器之ConnectInterceptor连接拦截器
一、连接机制连接的创建是在StreamAllocation对象统筹下完成的,我们前面面也说过它早在RetryAndFollowUpInterceptor就被创建了,StreamAllocation对象,主要用来管理两个关键角色:RealConnection:真正建立连接的对象,利用Socket建立连接。 ConnectionPool:连接池,用来管理和复用连接。在这里初始化了一个Str...
2019-07-10 21:06:06 1226
原创 OKHTTP系列(六)--拦截器之CacheInterceptor缓存拦截器
我们知道为了节省流量和提高响应速度,Okhttp是有自己的一套缓存机制的,CacheInterceptor就是用来负责读取缓存以及更新缓存的。一、CacheInterceptor拦截器intercept(Chain chain)方法/** Serves requests from the cache and writes responses to the cache. *///从缓存中...
2019-07-10 17:12:45 901
原创 OKHTTP系列(五)--拦截器之BridgeInterceptor连接桥拦截器
BridgeInterceptor就跟它的名字那样,它是一个连接桥,它负责把用户构造的请求转换为发送给服务器的请求,把服务器返回的响应转换为对用户友好的响应。 转换的过程就是添加一些服务端需要的header信息。一、BridgeInterceptor拦截器源码/** * Bridges from application code to network code. First it bu...
2019-07-09 23:29:03 333
原创 OKHTTP系列(四)--拦截器之RetryAndFollowUpInterceptor重定向拦截器
在介绍RetryAndFollowUpInterceptor拦截器之前,先了解一下重定向是什么!!!一、http协议中的重定向简单了解原理:在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载;大多数情况下,除了会有一小...
2019-07-09 15:23:33 1030
原创 OKHTTP系列(三)--拦截器Interceptor概述
回顾我们先回顾先我们OKHTTP系列(二)--请求与响应流程中的请求的处理:final class RealCall implements Call {Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. List<...
2019-07-09 15:18:42 638
原创 OKHTTP系列(二)--请求与响应流程
一 、请求与响应流程Okhttp的整个请求与响应的流程就是Dispatcher不断从Request Queue里取出请求(Call),根据是否已经存存缓存,从内存缓存或者服务器获取请求的数据。 请求分为同步和异步两种,同步请求通过 调用Call.exectute()方法直接返回当前请求的Response,异步请求调用Call.enqueue()方法将请求(AsyncCall)添加到请求队列中...
2019-07-08 22:59:29 1003
原创 OKHTTP系列(一)----结构简介
一、简介OkHttp是一个处理网络请求的高性能框架,由Square公司贡献二、请求流程三、Okhttp的子系统层级结构网络配置层:利用Builder模式配置各种参数;例如:超时时间、拦截器等,这些参数都会由Okhttp分发给各个需要的子系统。 重定向层:负责重定向。 Header拼接层:负责把用户构造的请求转换为发送给服务器的请求,把服务器返回的响应转换为对用户友好...
2019-07-08 22:49:57 467
原创 webview设置setOnKeyListener方法,onKey方法执行两次解决方案
一般我们都会这样设置,代码如下:mWebView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK &am...
2019-07-04 11:57:18 1759
原创 极光推送之#00 pc 000000000006abe4 /system/lib64/libc.so (tgkill+8) [arm64-v8a]错误
在使用极光推送的时候,在cpu架构为arm64-v8a的时候,闪退率100%,刚开始还以为是项目其他的影响了,但是在其他手机上没有问题,就只能一个一个排查,最终确认是极光推送的sdk的so文件有问题。具体问题如图所示:解决方法:只要把极光的sdk版本与libs包下的各种cpu架构的so文件更新为最新版本,这个问题就可以解决。这个问题排查的时间也比较久,就记录一波。...
2019-07-03 14:37:34 6213
PrintTool.zip
2019-08-16
音频播放文件与源码
2018-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人