- 授权协议: Apache
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: http://git.oschina.net/mzllon/easy-okhttp
- 软件文档: http://git.oschina.net/mzllon/easy-okhttp
软件介绍
# easy-okhttp
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();
Introduction to Programming in Java
Robert Sedgewick、Kevin Wayne / Addison-Wesley / 2007-7-27 / USD 89.00
By emphasizing the application of computer programming not only in success stories in the software industry but also in familiar scenarios in physical and biological science, engineering, and appli......一起来看看 《Introduction to Programming in Java》 这本书的介绍吧!
