Android网络开发之OkHttp--基本用法实例化各个对象
1、实例化OkHttpClient对象,OkHttpClient包含了以下属性,以及set()和get()方法。但并没有包含具体的执行方法,详情见源码。
//实例化OkHttpClent对象
private OkHttpClient client = new OkHttpClient();
private static SSLSocketFactory defaultSslSocketFactory;
private final RouteDatabase routeDatabase;
private Dispatcher dispatcher;
private Proxy proxy;
private List<Protocol> protocols;
private List<ConnectionSpec> connectionSpecs;
private final List<Interceptor> interceptors = new ArrayList<>();
private final List<Interceptor> networkInterceptors = new ArrayList<>();
private ProxySelector proxySelector;
private CookieHandler cookieHandler; /** Non-null if this client is caching; possibly by {@code cache}. */
private InternalCache internalCache;
private Cache cache; private SocketFactory socketFactory;
private SSLSocketFactory sslSocketFactory;
private HostnameVerifier hostnameVerifier;
private CertificatePinner certificatePinner;
private Authenticator authenticator;
private ConnectionPool connectionPool;
private Network network;
private boolean followSslRedirects = true;
private boolean followRedirects = true;
private boolean retryOnConnectionFailure = true;
private int connectTimeout = 10_000;
private int readTimeout = 10_000;
private int writeTimeout = 10_000;
2、实例化Request对象,大家可以参考Request源码。
(1)、大家可以先查考--java builder模式 http://www.cnblogs.com/moonz-wu/archive/2011/01/11/1932473.html
(2)、Request、Response即采用了Builder模式。
(3)、Request包含了HttpUrl、Method、Headers、RequestBody、Tag等参数。以及httpUrl()、method()、headers()、body()、tag()等方法(类似于get()方法)。
(4)、并没有包含有关网络操作和其他操作的方法。
3、实例化RequestBody方法,大家可以参考RequestBody源码。
(1)、第一可以通过RequestBody内部静态方法实现。
RequestBody body = RequestBody.create(final MediaType contentType, final ByteString content);
(2)、第二可以通过重写RequestBody的writeTo()和contentType()方法。
RequestBody body = new RequestBody() {
@Override
public void writeTo(BufferedSink arg0) throws IOException {
// TODO Auto-generated method stub
}
@Override
public MediaType contentType() {
// TODO Auto-generated method stub
return null;
}
};
Android网络开发之OkHttp--基本用法实例化各个对象的更多相关文章
- Android网络开发之OkHttp--基本用法GET
1.OkHttp框架使用了OkIo.jar包,不要忘记添加. 2.对于Request对象是如何实例化的,大家可以参考--java builder设计模式 http://www.cnblogs.com/ ...
- Android网络开发之OkHttp--基本用法POST
1.OkHttp框架使用了OkIo框架,不要忘记下OkIo.jar 2.通过POST访问网络,和通过GET访问网络基本相同,多了设置请求参数的过程.主要分为五步: (1).声明并实例化一个OkHttp ...
- Android网络开发之Volley--Volley基本用法ImageRequest(三)
1.ImageRequest用法和StringRequest一样,主要分为3步: (1).实例化一个RequestQueue对象 (2).设置ImageRequest对象参数,并将ImageReque ...
- Android网络开发之Volley--Volley基本用法JsonObjectReques(二)
1.JsonObjectRequest用法 用法和StringRequest基本相同,主要分为3步: (1).实例化一个RequestQueue对象 (2).设置JsonObjectRequest对象 ...
- Android网络开发之Volley--Volley基本用法StringRequest(一)
1.StringRequest用法 主要分为3步: (1).实例化一个RequestQueue对象 (2).设置StringRequest对象参数,并将StringRequest对象加入Request ...
- Android网络开发之HttpURLConnection
http是一个可靠的传输,建立在TCP/IP连接之上,缺省端口是80,其他端口号也可以用.Android可以用HttpURLConnection或HttpClient接口来开发http程序. http ...
- Android 网络开发之WIFI
WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为&qu ...
- Android网络开发之用tcpdump抓包
Android开发过程中,当涉及到网络通信的时候,有一些字段须要抓包获取.我之前由于SSDP设备发现的包头格式没有写对,经过抓包分析和标准包头对照发现了这个困扰我非常久的问题.总之,掌握在Androi ...
- Android网络开发之Volley--Volley自定义Request
1.自定义一个解析Json的Request,这里使用JackSon框架来解析Json.你也可以自定义一个解析XML的Request,或者使用FastSon来解析Json. 2.我们首先来看一下Stri ...
随机推荐
- hdu 1425 sort
Problem Description 给你n个整数,请按从大到小的顺序输出其中前m大的数. Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行 ...
- kubernetes 条件需求
1. 你必须拥有一台安装有Docker的机器. 2. 你的内核必须支持 memory and swap accounting .确认你的linux内核开启了如下配置: CONFIG_RESOURCE_ ...
- 克隆虚拟机系统整个文件快照,然后另起建立该系统,产生的IP地址冲突解决办法
进入克隆后的文件系统 cd /etc/sysconfig/network-scripts/ cp ifcfg-eth0 ifcfg-eth1 vim ifcfg-eth1 #修改其中的文件内容 ...
- VS2012+EF6+Mysq
为了学习ORM,选择了EntityFramework,经历了三天两夜的煎熬,N多次错误,在群里高手的帮助下,终于成功,现在将我的心路历程记录下来,一是让自己有个记录,另外就是让其它人少走些弯路. 我的 ...
- SQL语句创建access表
CREATE TABLE Persons(ID AutoIncrement primary key,Id_P int NOT NULL,LastName varchar(255) NOT NULL,s ...
- 20160128_关于SVN提交不了并且还提示升级的解决方法
因为是在项目中新增了文件夹,可能是直接在文件夹里放入文件,导致svn没有读取到文件信息,所以提交不了. 搞了一晚上,蛋疼死,解决方法:把新增的文件夹复制出来,删掉里面的 .svn文件夹.然后删掉项目里 ...
- zf-关于更换页面,的各种问题。
问题1:找不到common 这个变量(集合)与layer这个js文件. 这里的common 就是一个方法集合,声明var common; common.abc = function(参数1,参数2, ...
- nextSibling,previousSibling,childNodes常见错误
在使用nextSibling与previousSibling时,常出现选不到预计对象的情况 eg: <div class="a">1</div> <d ...
- Hibernate 系列教程5-双向多对一
主要讲解inverse和cascade的用法 cascade定义的是关系两端对象到对象的级联关系: 而inverse定义的是关系和对象的级联关系(管理外键的值). inverse 属性默认是false ...
- Java的引用c++的引用和C指针的区别
Java的引用本质上就是C中的指针,而c++的引用则完全不同:有一个类 class Point { int x; int y;} 同样的一个Point p; 在Java中p表示一个引用,它等同于C语言 ...