# simple-okhttp **Repository Path**: zhangsike/simple-okhttp ## Basic Information - **Project Name**: simple-okhttp - **Description**: 简单易用轻量的OkHttp封装库 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/zhangsike/simple-okhttp - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-04-20 - **Last Updated**: 2022-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simple-okhttp [![jitpack](https://jitpack.io/v/com.gitee.zhangsike/simple-okhttp.svg)](https://jitpack.io/#com.gitee.zhangsike/simple-okhttp) [![License](https://img.shields.io/hexpm/l/plug.svg)](https://gitee.com/ejlchina-zhxu/okhttps/blob/master/LICENSE) [![author](https://img.shields.io/badge/作者-zhangsike-orange.svg)](https://gitee.com/zhangsike) [![version](https://img.shields.io/badge/version-1.1.1-green.svg)](https://gitee.com/zhangsike) #### 介绍   该项目是针对OkHttp的简单封装,使OkHttp更加简单易用,非常轻量,仅仅只有500多行代码,几乎满足95%以上的http/https接口调用场景 #### 特点 + 链式调用,一点到底 + Get 直接 addQueryParam + Post 直接 addQueryParam,addBody,addFormData + Response直接封装到String,File,byte,Objetc(自定义) #### 本项目依赖库 + okhttp 3.3.0 + fastjson 1.2.58 #### 安装方式 + maven ```xml jitpack.io https://jitpack.io com.gitee.zhangsike simple-okhttp 1.1.1 ``` + gradle ``` allprojects { repositories { maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.gitee.zhangsike:simple-okhttp:1.1.1' } ``` #### 使用方法 + 支持设置baseUrl ```java Http http = Http.of(false); http.setBaseUrl("http://www.kuaidi100.com"); String str = http.get("/query") .addQueryParam("type", "zhongtong") .addQueryParam("postid", "22222222222") .run() .toStr(); ``` + GET ```java Http http=Http.of(false); //参数为是否忽略SSL证书验证,全局唯一实例 http.get("http://www.weather.com.cn/data/sk/101110101.html") .addQueryParam("userName", "admin") //添加query参数 .addQueryParam("password", "123456") //添加query参数 .run().toStr(); ``` + POST query params(url传参) ```java Http http=Http.of(false); //参数为是否忽略SSL证书验证,全局唯一实例 //1.post query参数和formData http.post("http://tools.fund.10jqka.com.cn/data/Fdcalculator/fixedCalculator") .addQueryParam("userName", "admin") //添加query参数 .addQueryParam("password", "123456") //添加query参数 .run() .toStr(); ``` + POST application/x-www-form-urlencoded(默认表单传参) ```java Http http=Http.of(false); //参数为是否忽略SSL证书验证,全局唯一实例 //post query参数和formData http.post("http://tools.fund.10jqka.com.cn/data/Fdcalculator/fixedCalculator") .addFormData("fundCode", "110001") //添加FormData参数 .addFormData("fundName", "易方达平稳增长混合 基金") //添加FormData参数 .addFormData("fixedAmount", "500") .addFormData("startTime", "2019-04-17") .addFormData("endTime", "2020-04-15") .addFormData("redeemTime", "2020-04-15") .run() .toStr(); ``` + POST body ```java Http http=Http.of(false); //参数为是否忽略SSL证书验证,全局唯一实例 //body 和 简单json 字段同时存在时(addJson和addBody同时存在),简单json(addJson)将被忽略 //默认的body提交类型为application/json //1.添加简单k-v json,map格式 http.post("http://tools.fund.10jqka.com.cn/data/Fdcalculator/fixedCalculator") .addJson("userName","admin") //添加简单json字段 .addJson("password","123456") //添加简单json字段 .run() .toStr(); //2.添加json格式的body http.post("http://tools.fund.10jqka.com.cn/data/Fdcalculator/fixedCalculator") .addBody("{\"userName\":\"jack\",\"password\":\"123\"}") //添加json body .run() .toStr(); //3.添加指定Content-Type格式的body http.post("http://tools.fund.10jqka.com.cn/data/Fdcalculator/fixedCalculator") .addBody(MediaType.parse("text/plain; charset=utf-8"), "teststring") //添加普通文本body .run() .toStr(); ``` + POST multipart/form-data(混合表单传参) ```java Http http=Http.of(false); //参数为是否忽略SSL证书验证,全局唯一实例 //post file http.postMultiForm("http://127.0.0.1/api/his/upload") .addFormDataPart("userName","jack") .addFormDataPart("zipFile", new File("注册码.txt")) .addFormDataPart("imageFile", new File("BCompare-zh-3.3.13.18981.exe")) .run(new PercentListener() { @Override public void process(int percent, long total, long writed, boolean done) { System.out.println("已上传"+percent+"%"); } }).toStr(); ``` + Response转换 ```java run() 方法执行完毕后使用以下方法以获得结果 toBean(Class clazz) //响应转为换对象 toBean(String json, Class clazz) //响应转换对象 toStr() //响应转换为字符串 toFile(String filePath)//响应存储为文件 toBytes() //响应转换为字节数组 toBase64Str() //响应转换为base64字符串 ```