java okhttp 网络请求

来源:互联网 发布:2000年人口普查数据 编辑:程序博客网 时间:2024/04/23 23:53

http://square.github.io/okhttp/

示例下载

翻译如下: 转自http://hao.jobbole.com/okhttp/

http是现在主流应用使用的网络请求方式, 用来交换数据和内容, 有效的使用HTTP可以使你的APP 变的更快和减少流量的使用

OkHttp 是一个很棒HTTP客户端:

支持SPDY, 可以合并多个到同一个主机的请求
使用连接池技术减少请求的延迟(如果SPDY是可用的话)
使用GZIP压缩减少传输的数据量
缓存响应避免重复的网络请求
当你的网络出现拥挤的时候,就是OKHttp 大显身手的时候, 它可以避免常见的网络问题,如果你的服务是部署在不同的IP上面的,如果第一个连接失败, OkHTtp会尝试其他的连接. 这个对现在IPv4+IPv6 中常见的把服务冗余部署在不同的数据中心上. OkHttp 将使用现在TLS特性(SNI ALPN) 来初始化新的连接. 如果握手失败, 将切换到SLLv3

使用OkHttp很容易, 同时支持 异步阻塞请求和回调.

如果你使用OkHttp ,你不用重写你的代码, okhttp-urlconnection模块实现了 java.net.HttpURLConnection 中的API, okhttp-apache模块实现了HttpClient中的API

例子

请求一个URL

这里例子请求一个URL,并以字符串的格式打印内容,全部代码参考这里 Full source.

OkHttpClient client = new OkHttpClient();String run(String url) throws IOException {  Request request = new Request.Builder()      .url(url)      .build();  Response response = client.newCall(request).execute();  return response.body().string();}

向服务器POST请求

向服务器发送POST请求,全部代码参照这里 Full source.

public static final MediaType JSON    = MediaType.parse("application/json; charset=utf-8");OkHttpClient client = new OkHttpClient();String post(String url, String json) throws IOException {  RequestBody body = RequestBody.create(JSON, json);  Request request = new Request.Builder()      .url(url)      .post(body)      .build();  Response response = client.newCall(request).execute();  return response.body().string();}

下载

↓ Latest JAR

你还需要下载 Okio, OKhttp使用这个库用来快速的I/O处理 在这里下载 latest JAR.

Maven方式下载

<dependency>  <groupId>com.squareup.okhttp</groupId>  <artifactId>okhttp</artifactId>  <version>(insert latest version)</version></dependency>

gradle

compile 'com.squareup.okhttp:okhttp:2.0.0'

github地址 https://github.com/square/okhttp

0 0