前言
- 先说说我为什么写这篇文章吧其实这个我在很久之前就已经学习过了,只不过当时并没有觉得它有什么用,所以进行简单的学习过后就把它抛之脑后了!
- 后来也一直都是用Bmob作为软件后台
- 随着对安卓的一步一步的深入,也意识到了okhttp的强大,所以现在决定,重新对okhttp进行学习
简介
- android网络框架之OKhttp - 一个处理网络请求的开源项目,是安卓端最火热的轻量级框架 - 由移动支付Square公司贡献(该公司还贡献了Picasso)
- 可用于替代HttpUrlConnection和Apache HttpClient
(android API23 6.0里已移除HttpClient)
优点
- 支持HTTP / 2,允许所有同一个主机地址的请求共享同一个插座连接,提高请求效率 - 共享插座,减少了请求延迟 - 缓存响应数据来减少重复的网络请求 - 减少了对数据流量的消耗 -自动处理的GZip压缩压缩
以上介绍来源于百度百科 >
1.添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
2.引入库
compile 'com.squareup.okhttp3:okhttp:4.0.0'
Github地址:https://github.com/square/okhttp
3.使用方法:
get请求
public class MainActivity extends Activity
{
@Override
protected void onCreate (Bundle savedInstanceState )
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
OkHttpClient mOkHttpClient = new OkHttpClient();
Request mRequest = new Request.Builder()
.url("https://www.baidu.com")
.get()
.build();
mOkHttpClient.newCall(mRequest).enqueue(new Callback(){
@Override
public void onFailure(Call p1, IOException p2)
{
//请求失败
}
@Override
public void onResponse(Call p1, final Response p2)
{
//请求成功
Log.d("data", p2.body().string());
}
});
}
}
- 然后把我们的请求结果显示到TextView上,以便于更加直观的看到结果。
布局代码:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TextView
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mainTextView1"/>
</ScrollView>
Java代码
MainActivity.java
public class MainActivity extends Activity
{
private TextView mTextView;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main