当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

easy-okhttp

对 okhttp 网络框架的封装
授权协议 Apache
开发语言 Java
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 国产
投 递 者 谯德佑
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

# easy-okhttp

License

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();
  • 一、什么是OKHttp3 官网地址:https://square.github.io/okhttp/ github地址:https://github.com/square/okhttp OKHttp是一个当前主流的网络请求的开源框架 Square公司(该公司还贡献了Picasso)开发,用于替代HttpUrlConnection和Apache HttpClient Android4.4开始,goo

  • easy-okhttp 简介 项目easy-okhttp是对okhttp网络框架(https://github.com/square/okhttp)上层封装, 支持文件上传和下载,表单(含文件)提交,链式调用,支持HTTPS和自定义签名证书等特性。 okhttp网络框架的流行始于Android,但是在Java后端仍然是Apache HttpClient网络框架,这个框架的缺点在于设计非常的复杂,而

  • 最近新开发项目 网络请求采用Okhttp请求 正好利用周末 对okhttp进行了解 一下,先看官网的介绍: HTTP is the way modern applications network. It’s how we exchange data & media. Doing HTTP efficiently makes your stuff load faster and saves band

  • 这篇文章实现了OKhttp的二次封装,在封装里实现了请求Json数据,表单的提交,下载图片. 封装的好处: 1.节约内存,使所有的网络请求都用一个OKhttpclient和handler对象 2.解决OKhttp,网络请求成功,代码在子线程的问题,把请求成功后的逻辑代码放到主线程中执行 3.简化代码 OKhttp的中级封装,实现两个功能,从服务端下载数据;从客户端提交数据 封装优秀的OKhttp:

  • Android-Easy-MultiDex是基于DexKnifePlugin 建议先熟悉一下这2个东西 分包总共有2个地方,可以配置一个app的build.gradle、一个是dexknife.txt 一、在build.gradle的android{}插入这段代码,表示计算这几个activity的依赖,并加入maindexlist中 /需要加入主dex的Activity列表 def mai

  • OkHttp和Okio 文本将介绍OkHttp和Okio基本使用 OkHttp HTTP 是现在APP访问网络最流行的方式。通过它我们可以交换数据和媒体信息。而高效的使用HTTP可以让你的加载数据更快并且节省带宽。 OkHttp就是一种HTTP客户端连接,它有如下特性: HTTP/2多路复用Socket到同一个主机,共享链接。 采用连接池技术,可以有效的减少Http链接数量。 无缝集成GZIP压缩

 相关资料
  • 如您所见,我已使用我的帐户登录,并显示在 Firebase 控制台上。 当用户使用Google Sign-in登录后,函数firebaseAuthWithGoogle使用Firebase对用户进行身份验证: 函数firebaseAuthWithGoogle做的另一件事是:通过下面的代码片段连接到http Apache服务器,并将用户信息保存在MySQL users表中: 因此,在用户成功通过身份验

  • okhttp 是一个 Java 的 HTTP+SPDY 客户端开发包,同时也支持 Android。 示例代码:     OkHttpClient client = new OkHttpClient();    String get(URL url) throws IOException {      HttpURLConnection connection = client.open(url); 

  • 本文向大家介绍Flutter 网络请求框架封装详解,包括了Flutter 网络请求框架封装详解的使用技巧和注意事项,需要的朋友参考一下  Flutter 请求网络的三种方式 flutter 请求网络的方式有三种,分别是 Dart 原生的网络请求 HttpClient、第三方网络请求 http以及 Flutter 中的 Dio。我们可以比较一下这三种网络请求方式,然后封装为我们方便请求网络的工具类。

  • 问题内容: 我正在尝试做的事情 :: 我正在尝试学习 Okhttp 在android中进行网络通话的用法 我做了什么 :: 我 在这里 阅读了他们的文档 __ 我已经在项目中下载并添加了JAR 我从 这里 使用他们的示例代码 __ MyCode :: MainActivity.java 我面临的错误 :: 在这一行中, 我收到以下错误消息: 客户无法解析为变量 如何解决这个问题! {更新} 现在我

  • > 在iOS上,我广泛使用了AFNetworking项目。是否有一个与Android相当的库? 我已经阅读了OkHTTP和Square的改型,以及Volley,但还没有使用它们开发的经验。我希望有人能为每种情况提供一些最佳用例的具体例子。从我所读到的内容来看,OkHTTP似乎是三个中最健壮的,并且可以处理这个项目(上面提到的)的需求。

  • 我在Eclipse上的android应用程序中使用OkHttp 2.0.0 jar。由于OkHttp现在依赖于Okio库,我还在我的项目中添加了Okio 1.0.0 jar。该项目编译良好,没有编译错误,但当我在android设备上运行时,它会给出所有与OkHttp库类有关的内容。 我也尝试了凌空抽射,它没有任何问题,任何人都可以帮助我,问题已经持续了3到4天了。 更新我也尝试了android s