联网请求操作okhttputils

来源:互联网 发布:cnc刀库编程 编辑:程序博客网 时间:2024/06/07 13:02

了解okhttputils之前我们看对文献尽进行了解下:

http://www.open-open.com/lib/view/open1452948374339.html

http://blog.csdn.net/hehe307/article/details/51733709

http://www.cnblogs.com/Coderwei2016/p/6445663.html

对于很多刚出道的程序猿来说,刚开始做项目时联网框架都不知道选哪个好,我们通过上面的链接了解下联网框架,然后我个人再真对最近所做项目中封装的okhttputilsjing进行介绍。

1.添加依赖:

    compile 'com.github.xxl6097:okhttputils:2.4.1'
2.首先初始化okhttputils:

** * Created by 李金伟 on 2016/10/25. */public class MyApp extends Application {    private static final String TAG = "MyApp";    public static MyApp context;    private static OkHttpUtils okHttpUtils;    @Override    public void onCreate() {        super.onCreate();        context = this;// 赋值        initOkHttp();    }    public static Context getContext(){        return context;    }    /**     * 初始化okhttp     */    private static void initOkHttp(){        okHttpUtils =  OkHttpUtils.getInstance();//获得实例        okHttpUtils.setConnectTimeout(30, TimeUnit.SECONDS);        okHttpUtils.setReadTimeout(30, TimeUnit.SECONDS);        okHttpUtils.setWriteTimeout(30, TimeUnit.SECONDS);    }    public static OkHttpUtils getOkHttpUtils() {        return okHttpUtils;    }}
3.封装公共类:

/** * Created by Administrator on 2016/8/23. */public class OkHttpUtils {    /**     *  post提交文本数据     * @param url  提交的地址     * @param dataMap  提交的数据 ,接口字段 key  value 值     * @param callback  数据回调     */    public static void postDataMap(String url , Map<String ,String> dataMap, com.zhy.http.okhttp.callback.Callback callback){        PostFormBuilder postFormBuilder = MyApp.getOkHttpUtils()                .post()                .tag(url)                .url(url);        if (dataMap != null){            for (Map.Entry<String, String> entry : dataMap.entrySet()) {                postFormBuilder.addParams(entry.getKey(),entry.getValue());//获得:key  value 值 ,也就是接口中的所需字段            }        }        postFormBuilder.build().execute(callback);    }}

3.举个接口的例子:

 public static void getOA_SendShare_ContactPeople_List(String user_id, Callback callback) {        dataMap = new HashMap<>();        dataMap.put("USER_ID", user_id);        OkHttpUtils.postDataMap(NetUtils.URL_CONTACT_PEOPLE_LIST, dataMap, callback);//url dataMap  callback    }

4.url:也就是:NetUtils.URL_CONTACT_PEOPLE_LIST:

  public static String URL_CONTACT_PEOPLE_LIST = BaseUrl + "iosShare/selectShareRange.do";

5.BaseUrl:链接地址中公共的部分:如:
 public static String BaseUrl = "https://www.jh1000.com/"

不过有时候接口中对链接地址返回的不同,比如说是:返回的图片地址,我们所需要的是 https://www.jh1000.com  类型,但是返回来的地址是:https://114.215.40.91 ,这时候我们就不能加载出来图片,因为路径就不对, 那么这时候我们怎么处理呢?

 /** * 自定义接口数据返回处理,ios和安卓不一致 */public abstract class MyString2Callback extends StringCallback {    public static String respUrl = "https://114.215.40.91";    public static String needUrl = "https://www.jh1000.com";    private static final String TAG = "MyString2Callback";    public MyString2Callback() {    }    @Override    public String parseNetworkResponse(Response response) throws IOException {        String res = response.body().string();        if (res.contains(respUrl)){            res = res.replace(respUrl,needUrl);        }        Log.d(TAG, "parseNetworkResponse() returned: " + res);        return res;    }}
我们通过定义StringCallback ,将返回来的数据地址改为 https://www.jh1000.com 。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 85平米装修效果图 现代黑白灰装修效果图 80平房屋装修效果图 客厅墙面装修效果图 110平方装修效果图 手机店装修实体图 小洗手间装修效果图 不吊顶的客厅装修图 地中海风格装修效果图 平房客厅装修效果图 孕婴店装修效果图 小户型厨房装修效果图 联排别墅装修效果图 80平方的房子装修图 90平方房屋设计图 小平米装修效果图 新房子装修效果图 室内简单装修效果图大全 儿童卧室装修效果图小户型 小户型装修效果图大全2015图片 楼中楼装修效果图小户型 三室两厅装修效果图现代简约 现代装修风格效果图客厅 简约客厅装修实景图大全 90平方米简约装修效果图 190平方房子装修效果图 8平米卫生间装修效果图 100平方房屋装修效果图 四室两厅两卫装修效果图 130平米三室两厅装修效果图 八十平米小户型设计效果图 三室一厅一厨一卫装修效果图 七十平米小户型装修效果图 200平方米的房子设计图 75平方两室一厅装修效果图 113平方三室两厅装修效果图2015 85平米两室一厅装修效果图 四十平米小户型装修效果图 三房两厅两卫装修效果图 现代简约客厅装修效果图 3平方米卫生间装修效果图