主页: https://github.com/square/okhttp


特点:
* 支持HTTP/2 和 SPDY
* 默认支持 GZIP 降低传输内容的大小
*
支持网络请求的缓存
* 当网络出现问题时,自动重试一个主机的多个 IP 地址


请求流程:


配置: compile 'com.squareup.okhttp3:okhttp:3.2.0'


使用示例代码:

public class MainActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //1. 创建http客户端
OkHttpClient okHttpClient = new OkHttpClient();
//2. 创建请求
Request request = new Request.Builder()
.get() //get请求
.url("http://www.baidu.com")
.build();
//3. 发起请求
//同步的请求,耗时操作不推荐使用
// okHttpClient.newCall().execute();
//异步请求
okHttpClient.newCall(request).enqueue(new MyCallback());
} private class MyCallback implements Callback {
//失败 ,回调方法在子线程中
@Override
public void onFailure(Call call, IOException e) {
// Toast.makeText(MainActivity.this,"网络请求失败",Toast.LENGTH_SHORT).show();
showToastInAnyThread("网络请求失败");
}
//成功回调 ,回调方法在子线程中
@Override
public void onResponse(Call call, Response response) throws IOException {
String text = response.body().string();
showToastInAnyThread(text);
}
} public void showToastInAnyThread(final String text){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,text,Toast.LENGTH_SHORT).show();
}
});
} }

网络通信框架之okHttp的更多相关文章

  1. 网络通信框架Retrofit2

    网络通信框架Retrofit2 1 概要 Retrofit2的简介以及特点 Retrofit2使用配置(导包,权限等) Retrofit2中常用的注解介绍 Retrofit2实现http网络访问 GE ...

  2. c#网络通信框架networkcomms内核解析 序言

    NetworkComms网络通信框架序言 networkcomms是我遇到的写的最优美的代码,很喜欢,推荐给大家:) 基于networkcomms2.3.1开源版本( gplv3)协议,写了一些文章, ...

  3. c#网络通信框架networkcomms内核解析之十 支持优先级的自定义线程池

    NetworkComms网络通信框架序言 本例基于networkcomms2.3.1开源版本  gplv3协议 如果networkcomms是一顶皇冠,那么CommsThreadPool(自定义线程池 ...

  4. c#网络通信框架networkcomms内核解析之九 自定义处理方法的运行机制

    NetworkComms网络通信框架序言 本文基于networkcomms2.3.1开源版本  gplv3协议 我们自己写的处理方法都称之为自定义处理方法 比如,我们在服务器上写的与登陆相关的处理方法 ...

  5. c#网络通信框架networkcomms内核解析之八 数据包的核心处理器

    NetworkComms网络通信框架序言 本文基于networkcomms2.3.1开源版本  gplv3协议 我们先回顾一个 c#网络通信框架networkcomms内核解析之六 处理接收到的二进制 ...

  6. NetworkComms网络通信框架V3结构图

    NetworkComms网络通信框架序言 来自英国的c#网络通信框架,历时五年打造,由英国剑桥的2位工程师倾情开发,最新版本V3.x版本.

  7. 强大的网络通信框架(实现缓存)--第三方开源--volley

    Android Volley是Android平台上很好用的第三方开源网络通信框架.使用简答,功能强大. Android Volley的库jar包Volley.ja下载连接地址:Volley下载 下载后 ...

  8. 成熟的C#网络通信框架介绍——ESFramework通信框架

    (转自:http://www.cnblogs.com/zhuweisky/archive/2010/08/12/1798211.html) ESFramework通信框架是一套性能卓越.稳定可靠.强大 ...

  9. DotNetty网络通信框架学习之初识Netty

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

随机推荐

  1. 批量关闭linux进程

    批量关闭linux进程 你是否经常遇到需要批量杀死很多进程的情况?而你是否还在一个一个的kill. 接下来我教你一个小秘诀吧. 1.首先我们查看当前的进程列表. 我们以查看nginx进程为例,通过ps ...

  2. KMP算法查找字符串

    假设长字符串为t,短字符串为p.为了进行KMP匹配,首先需要计算字符串p的next数组,后面实现了计算该数组的函数void KmpGenNext(char* p, int* next).对于”abca ...

  3. facenet中pairs文件制作

    1.对图片进行重命名 """Rename the image based on the folder name""" import os i ...

  4. 中国剩余定理(crt)和扩展中国剩余定理(excrt)

    数论守门员二号 =.= 中国剩余定理: 1.一次同余方程组: 一次同余方程组是指形如x≡ai(mod mi) (i=1,2,…,k)的同余方程构成的组 中国剩余定理的主要用途是解一次同余方程组,其中m ...

  5. 第二天Beta冲刺

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 <做个一亿的小项目> 这个作业的目标 完成第二天Beta冲刺 作业正文 .. ...

  6. oracle—数据泵及常用参数

    -- 1.创建目录dumpcreate or replace directory dump as '/home/oracle/dump'; -- 2.授权:Grant read,write on di ...

  7. 简单的了解Servlet的使用

    具体使用: 1.实现 Servlet 接口 2.实现 Servlet 接口中 所有的方法 package com.ou.test; import javax.servlet.*; import jav ...

  8. gRPC应用实践

    What is RPC? Remote Procedure Call is a high-level model for client-server communication. Assume the ...

  9. App自动化测试介绍

  10. BZOJ 3073: [Pa2011]Journeys Dijkstra+线段树优化建图

    复习一下线段树优化建图:1.两颗线段树的叶子节点的编号是公用的. 2.每次连边是要建两个虚拟节点 $p1,p2$ 并在 $p1,p2$ 之间连边. #include <bits/stdc++.h ...