网站首页 > 开源技术 正文
easy-okhttp是对okhttp3上层封装的网络框架,支持文件上传和下载表单提交(文件和一个参数对应多值),链式调用,并且默认整合Gson,对返回结果多种转换,同时还支持HTTPS单向认证和双向认证等特性。
okhttp3网络框架的流行始于Android,但是在Java后端仍然是Apache HttpClient网络框架,这个框架的缺点在于设计非常的复杂,而且Jar包比较大。因此封装easy-okhttp网络框架是降低对网络操作的难度,更是希望弃用Apache HttpClient,其次也是为了帮助 okhttp3 的推广。
框架特性
- 仅支持GET和POST两种方式,其他如PUT等不太常用,就暂不支持
- 基于POST的大文本数据、二进制文件上传,即通过Http Body提交
- 表单提交,带有文件的表单提交和表单提交支持参数名重复,在后台接收到的是数组或集合
- 支持session保持
- 对HTTPS支持单向认证和双向认证
- 支持同步请求和异步请求,统一的数据处理接口
- 开箱即用,默认的配置基本上满足需求
框架引入
Maven之下
<dependency> <groupId>com.mzlion</groupId> <artifactId>easy-okhttp</artifactId> <version>1.0.0-Final</version> </dependency>
Gradle之下
compile 'com.mzlion:easy-okhttp:1.0.7-beta'
用法示例
1.普通的GET请求无参数
String responseData = HttpClient
.get("http://localhost:8080/okhttp-server-test/userInfo/pageSelect")
// 请求方式和请求url .execute()
.asString();
2.普通的GET请求带参数
String responseData = HttpClient
.get("http://localhost:8080/okhttp-server-test/userInfo/pageSelect")
//请求方式和请求url
.queryString("username","mzlion") //设置请求参数
.execute()
.asString();
3.POST普通表单提交
String responseData = HttpClient
.post("http://localhost:8080/okhttp-server-test/userInfo/create")
//请求方式和请求url
.param("username","mzlion") // 表单参数
.param("userPwd", "123") // 表单参数
//queryString("queryTime","20160530") //url参数
.execute()
.asString();
//formParam()重载方法还支持`Map`
4.POST提交String
String responseData = HttpClient
.textBody("http://localhost:8080/okhttp-server-test/userInfo/create")
// 请求方式和请求url
.json("{\"username\":\"mzlion\",\"userPwd\":\"123\"}")
// post提交json
//.xml("")
//post提交xml
//.html("function fun(){}")
//post提交html
//.charset("utf-8")
//设置编码
.execute()
.asString();
5.POST提交二进制文件
String responseData = HttpClient
.binaryBody("http://localhost:8080/okhttp-server-test/userInfo/avatar")
// 请求方式和请求url
.stream(this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"))
// post提交流
//.file(new File("d:/andy-bao.jpg")) //post提交文件
.contentType(ContentType.IMAGE_JPG)
//设置请求内容类型
.execute()
.asString();
//ContentType内置常见的MIME类型,基本上不用自己创建了
6.POST表单提交含文件上传
String responseData = HttpClient
.formDataPost("http://localhost:8080/okhttp-server-test/userInfo/createWithFile")
//请求方式和请求url
.param("userName", "test")
.param("userPwd", "123456")
.param("nickName", "Test")
.param("realName", "测试")
.param("hobby", "测试,就爱测试")
.param("avatarFile", this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"), "andy-bao.jpg")
//.formParam("avatarFile", this.getClass().getClassLoader().getResourceAsStream("andy-bao.jpg"), "andy-bao.jpg")
.execute()
.asString();
//formParam()重载方法还支持`Map`
7.自定义签名网站https访问
>自签名网站htts访问处理方式非常简单,首先拿到客户端的签名证书,一般通过浏览器就可以导出xxx.cer证书了。然后将拿到的证书文件拷贝到自己的项目中,然后按照如下方式调用或设置。
String responseData = HttpClient.get()
//设置请求方式
.url("https://kyfw.12306.cn/otn/")
//设置请求地址
.readTimeout(30000) //覆盖设置,读取超时时间
.https(this.getClass().getClassLoader().getResourceAsStream("SRCA.cer"))
.execute() //执行
.asString();
猜你喜欢
- 2024-09-28 我放弃了okhttp、httpClient,选了这个神仙工具
- 2024-09-28 很懵圈,记录一次MinIO 使用okhttp版本的问题?
- 2024-09-28 android学习,OkHttp,拦截器(okhttp自定义拦截器放在哪一层)
- 2024-09-28 Okhttp上传图片失败,居然是服务端的锅?(一)
- 2024-09-28 工作日报 2021.10.20 OkHttp3错误异常:unexpected end of stream
- 2024-09-28 深入浅出 OkHttp 源码解析及应用实践
- 2024-09-28 用OkHttp实现WebSocket长连接(利用输入实现预期结果的相互关联或者相作用的一组活动 描述的是)
- 2024-09-28 干货-okHttp的优点-收藏了(水瓶座女的缺点和优点)
- 2024-09-28 软件更新丨OkHttp 4.0.0 RC 3 发布,从 Java 切换到 Kotlin
- 2024-09-28 开发者必备的Android开发资源之OkHttp
欢迎 你 发表评论:
- 1596℃北京那些看上去很牛的车牌们!(北京厉害车牌)
- 1113℃2025年度视频去水印软件TOP5对比:哪款最值得用
- 600℃新疆话里的“虫子”
- 527℃中兴光猫 Telnet下设置大全(中兴光猫命令大全)
- 520℃蓝牙设备配对失败的系统性解决方案与技术解析
- 518℃未备份电脑文件数据恢复的七种方法
- 496℃工艺管道常用英文缩写 英汉对照
- 453℃是爱情啊!比伯分享度假照 与海莉礁石上甜蜜接吻
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)

本文暂时没有评论,来添加一个吧(●'◡'●)