一个基于okhttp的标准RESTful风格的网络框架

一个基于okhttp的标准RESTful风格的网络框架

2022-09-16 0 1,016
资源编号 38596 最近更新 2022-09-19
¥ 0人民币 升级VIP
立即下载 注意事项
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 模板修改 源码安装

本期推荐的是一个基于okhttp的标准RESTful风格的网络框架——OkGo – 3.0。

一个基于okhttp的标准RESTful风格的网络框架

OkGo 3.0是基于 Http 协议,封装了 OkHttp 的网络请求框架,比 Retrofit 更加简单易用,支持 RxJava,RxJava2,支持自定义缓存,支持批量断点下载管理和批量上传管理功能。

主要功能

  • 基本的get、post、put、delete、head、options、trace、patch八种请求
  • 支持upString,upJson,upBytes,upFile等up类方法上传特定数据
  • 支持一个key上传一个文件,也可以一个key上传多个文件,也可以多文件和多参数一起上传
  • 大文件下载和下载进度回调
  • 大文件上传和上传进度回调
  • 支持cookie的自动管理,并可自定义cookie管理策略
  • 支持缓存模式,不仅支持http缓存协议,也支持自定义缓存策略
  • 支持重定向
  • 支持自定义超时自动重连次数
  • 支持链式调用
  • 支持https访问,支持双向认证
  • 支持根据tag取消请求,也可全部取消
  • 支持自定义Callback,自动解析网络数据

依赖

//必须使用
compile 'com.lzy.net:okgo:3.0.4'

//以下三个选择添加,okrx和okrx2不能同时使用
compile 'com.lzy.net:okrx:1.0.2'
compile 'com.lzy.net:okrx2:2.0.2'  
compile 'com.lzy.net:okserver:2.0.5'

使用示例

1 初始化配置

OkGo.getInstance().init(this);

2 可用参数

  • .post(url):post请求,当然一共支持GET,HEAD,OPTIONS,POST,PUT,DELETE, PATCH, TRACE这8种请求方式。
  • .params():添加参数的时候,最后一个isReplace为可选参数,默认为true,即代表相同key的时候,后添加的会覆盖先前添加的。
  • .tag(this):请求的tag,用于标识当前的请求,方便后续取消对应的请求,如果你不需要取消请求,也可以不用设置。
  • .isMultipart():该方法表示是否强制使用multipart/form-data表单上传,因为该框架在有文件的时候,无论你是否设置这个参数,默认都是multipart/form-data格式上传,但是如果参数中不包含文件,默认使用application/x-www-form-urlencoded格式上传,如果你的服务器要求无论是否有文件,都要使用表单上传,那么可以用这个参数设置为true。
  • .isSpliceUrl():该方法表示是否强制将params的参数拼接到url后面,默认false不拼接。一般来说,post、put等有请求体的方法应该把参数都放在请求体中,不应该放在url上,但是有的服务端可能不太规范,url和请求体都需要传递参数,那么这时候就使用该参数,他会将你所有使用.params()方法传递的参数,自动拼接在url后面。
  • .retryCount():该方法是配置超时重连次数,也可以在全局初始化的时候设置,默认使用全局的配置,即为3次,你也可以在这里为你的这个请求特殊配置一个,并不会影响全局其他请求的超时重连次数。
  • .cacheKey() .cacheTime() .cacheMode():这三个是缓存相关的配置,详细请看缓存介绍
  • .headers():该方法是传递服务端需要的请求头,如果你不知道什么是请求头,看wiki首页关于网络抓包中的http协议链接。
  • .params():该方法传递键值对参数,格式也是http协议中的格式,详细参考上面的http协议连接。
  • .addUrlParams() .addFileParams() .addFileWrapperParams():这里是支持一个key传递多个文本参数,也支持一个key传递多个文件参数,详细也看上面的http协议连接。

3 Response对象

Response对象内部一共有5个字段,分别表示以下意思:

  • body:当前返回的数据,T即为数据的泛型。使用方法body()获取该值。如果请求成功,回调onSuccess(),该字段为convertResponse()解析数据后返回的数据。如果发生异常,回调onError(),该字段值为null。
  • throwable:如果发生异常,回调onError(),该字段保存了当前的异常信息。如果请求成功,回调onSuccess(),该字段为null。使用方法getException()获取该值。
  • isFromCache:表示当前的数据是来自哪里,true:来自缓存,false:来自网络。使用方法isFromCache()获取该值。
  • rawCall:表示当前请求的真正okhttp3.Call对象。使用方法getRawCall()获取该值。
  • rawResponse:表示当前请求服务端真正返回的okhttp3.Response对象,注意:如果数据来自缓存,该对象为null,如果来自网络,该对象才有值。使用方法getRawResponse()获取该值。

另外,该对象还有以下几个方法:

  • code():http协议的响应状态码,如果数据来自网络,无论成功失败,该值都为真实的响应码,如果数据来自缓存,该值一直为-1。
  • message():http协议对响应状态码的描述信息,如果数据来自网络,无论成功失败,该值都为真实地描述信息,如果数据来自缓存,该值一直为null。
  • headers():服务端返回的响应头信息,如果数据来自网络,无论成功失败,该值都为真实的头信息,如果数据来自缓存,该值一直为null。
  • isSuccessful():本次请求是否成功,判断依据是是否发生了异常。

3 示例代码

//登录请求
 String path = "https://......";// 登录链接

OkGo.<String>post(path).tag(this)
                    .params("userName",userName)
                    .params("password",password)
                  .execute(new StringCallback() {
                        @Override
                        public void onSuccess(Response<String> response) {
                            //登录成功
                        }

                        @Override
                        public void onError(Response<String> response) {
                            //登录失败
                        }
                    });

演示

一个基于okhttp的标准RESTful风格的网络框架

一个基于okhttp的标准RESTful风格的网络框架

一个基于okhttp的标准RESTful风格的网络框架

一个基于okhttp的标准RESTful风格的网络框架

—END—

开源协议:Apache2.0

资源下载此资源为免费资源立即下载

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 免费源码 一个基于okhttp的标准RESTful风格的网络框架 https://www.7claw.com/38596.html

分享免费的开源源码

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、七爪会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、七爪无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在七爪上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于七爪介入快速处理。
查看详情
  • 1、七爪作为第三方中介平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益; 2、非平台线上交易的项目,出现任何后果均与互站无关;无论卖家以何理由要求线下交易的,请联系管理举报。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务