# 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
[](https://jitpack.io/#com.gitee.zhangsike/simple-okhttp)
[](https://gitee.com/ejlchina-zhxu/okhttps/blob/master/LICENSE)
[](https://gitee.com/zhangsike)
[](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字符串
```