对 okhttp 网络框架的封装 easy-okhttp 推荐 国产 网络工具包

easy-okhttp 详细介绍html

easy-okhttp是对okhttp3上层封装的网络框架,支持文件上传和下载表单提交(文件和一个参数对应多值),链式调用,而且默认整合Gson,对返回结果多种转换,同时还支持HTTPS单向认证和双向认证等特性。json

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之下session

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请求带参数post

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();
相关文章
相关标签/搜索