我们通过HTTP在设备和服务器之前交换数据。高效的使用HTTP可以让您的应用运行更快、更节省流量。而OkHttp库就是为此而生
OkHttp是一个高效的HTTP库:
OkHttp 处理了很多网络疑难杂症:会从很多常用的连接问题中自动恢复。如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。
使用 OkHttp 无需重写您程序中的网络代码。OkHttp实现了几乎和java.net.HttpURLConnection一样的API。如果您用了 Apache HttpClient,则OkHttp也提供了一个对应的okhttp-apache 模块。
OkHttp 支持 Android 2.2+;Java 1.5+。
下面的示例请求一个URL并答应出返回内容字符。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
OkHttpClient client =newOkHttpClient();
String get(URL url)throwsIOException {
HttpURLConnection connection = client.open(url);
InputStream in =null;
try{
// Read the response.
in = connection.getInputStream();
byte[] response = readFully(in);
returnnewString(response,"UTF-8");
}finally{
if(in !=null) in.close();
}
}
|
下面的代码通过Post发送数据到服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
OkHttpClient client =newOkHttpClient();
String post(URL url,byte[] body)throwsIOException {
HttpURLConnection connection = client.open(url);
OutputStream out =null;
InputStream in =null;
try{
// Write the request.
connection.setRequestMethod("POST");
out = connection.getOutputStream();
out.write(body);
out.close();
// Read the response.
if(connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
thrownewIOException("Unexpected HTTP response: "
+ connection.getResponseCode() +" "+ connection.getResponseMessage());
}
in = connection.getInputStream();
returnreadFirstLine(in);
}finally{
// Clean up.
if(out !=null) out.close();
if(in !=null) in.close();
}
}
|
下载类库使用:okhttp-1.0.1.jar
项目主页: OkHttp