OkHttpClient 解剖
源码地址:https://github.com/square/okhttp
上一篇对整体的流程,有了窥探,这次就对另外一个重要的类进行学习分析——OkHttpCilent。
OkHttpClient结构上比较简单,使用了Bulider模式来进行构建。
这个类大体分了三部分:
提供内部使用的静态块;
提供给外部调用读取信息的方法,以及实现...
使用了好久的okhttp,都没有对其源码进行学习拆解,今天开始,有时间就写一些学习笔记,对okhttp进行分析。
基本请求流程
源码地址:https://github.com/square/okhttp
如何使用的?
以一个 Post同步 请求为例:
OkHttpClient client = new OkHttpClient();RequestBody body = RequestBody.create(JSON, json)...
RetryAndFollowUpInterceptor拦截器分析
源码地址:https://github.com/square/okhttp
前面已经对整体流程以及几个类做了了解,这里就开始对第一个拦截器RetryAndFollowUpInterceptor的分析了。
整体结构
首先通过一张图了解一下这个拦截器的整体结构:
整体结构
纵观整个类,方法分为了两部分:
供外...
ConnectInterceptor连接拦截器分析
源码地址:https://github.com/square/okhttp
经过前几个拦截器的预热,终于来到了拦截器的重头戏了,连接相关的拦截器。这个也耗费了较多时间去准备。(代码较多,撸代码请慎重)
在分析第一个拦截器中RetryAndFollowUpInterceptor,我们知道,当时初始化了一个StreamAlloc...
源码地址:https://github.com/square/okhttp
不知不觉已经来到了最后一个拦截器,前面做了各种处理,也建立了连接。接下来的CallServerInterceptor,应该就是对数据进行交换、读取以及构建结果的类了。
不过其实在这个拦截器之前,还可以自定义networkInterceptors。在Okhttp的拦截器链条里面有两个地方可以...
问题:socket.error: [Errno 48] Address already in use
在编辑flask代码时,如果没有关闭flask的程序,默认的5000端口一直被占用。
再次运行flask程序时,会显示:
socket.error: [Errno 48] Address already in use
lsof查进程
因为之前占用的5000端口,所以直接用lsof查该端口占用的进程。
$ sudo lsof -i...
前后端的实时数据交互
重点是实时。
ajax轮询 :客户端定期发送一次请求。需要服务器有高速处理能力,因为接收的请求量大。
长轮询(Long poll):客户端请求,服务端接收后,有消息了再返回请求。要求服务器高并发能力,因为需要同时建立不同的连接。
Server-Sent Events(SSE):服务端单向传递数据到客户端...
注:本文是应可乐兄 @Yi罐可乐 的邀请写下的简短文章,也是对自己学习 Python web 开发的一个总结与交待。
文章首发于与可乐合著的 github 仓库:python-django-learning
Python 基础
当你学到 Django 的时候,我们默认你已经有了 Python 基础。如果你没有 Python 基础,或者认为自己还需要在 Python 基础上多...
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_138
其实很早以前就想搞一套完备的标签云架构了,迫于没有时间(其实就是懒),一直就没有弄出来完整的代码,说到底标签对于网站来说还是很重要的,它能够对一件事物产生标志性描述,通常都会采用相关性很强的关键字,这样不仅便于检索和分类,同时对网站的内...
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_121
之前写了几篇关于微信小程序的开发实践,总的来说没啥难度,感兴趣的请移步:使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境,这一次我们来尝试开发一下微信公众号,那么公众号和小程序到底有什么区别呢?
首先定位不同
公众号服务于营...