Android中OkHttp使用

来源:互联网 发布:js方法同步执行 编辑:程序博客网 时间:2024/05/22 06:54

OkHttp Square 公司出品的,HTTP 另一个请求库,Google 不推荐人们使用HttpClient,,可是HttpURLConnection 实在是太难用了因此很多人使用了OkHttp 来解决这问题, Android4.4 的源码中HttpURLConnection 已经替换成OkHttp 实现

1、Android Studio环境配置

APPbuild.gradle配置依赖包,okHttp依赖okIo所以需要导入okIo

compile 'com.squareup.okhttp3:okhttp:3.4.1'compile 'com.squareup.okio:okio:1.10.0'


AndroidManifest.xml加入网络权限

<uses-permission android:name="android.permission.INTERNET" />

2Http中Get请求

///创建okHttpClient对象OkHttpClient mOkHttpClient = new OkHttpClient();//创建一个Requestfinal Request request = new Request.Builder()        .url("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=218.4.255.255")        .build();//new callCall call = mOkHttpClient.newCall(request);//请求加入调度call.enqueue(new Callback() {    @Override    public void onFailure(Call call, IOException e) {        //请求失败    }    @Override    public void onResponse(Call call, Response response) throws IOException {        //不是UI线程,请不要在此更新界面        String htmlStr = response.body().string();        Log.e("TAG", "htmlStr ==" + htmlStr);    }});
3Http中Post请求
OkHttpClient mOkHttpClient = new OkHttpClient();RequestBody requestBody = new FormBody.Builder()        .add("format", "json")        .add("ip", "218.4.255.255")        .build();okhttp3.Request request = new okhttp3.Request.Builder()        .url("http://int.dpool.sina.com.cn/iplookup/iplookup.php?")        .post(requestBody)        .build();mOkHttpClient.newCall(request).enqueue(new Callback() {    @Override    public void onFailure(Call call, IOException e) {        //请求失败    }    @Override    public void onResponse(Call call, Response response) throws IOException {        Log.e("TAG", "Result=" + response.body().string());    }});

在Github上有有个封装好的okhttputils类,使用起来非常方便
https://github.com/hongyangAndroid/okhttputils
该封装类是鸿洋大神编写,博客地址
http://blog.csdn.net/lmj623565791/article/details/47911083



1 0
原创粉丝点击