当筵意气临九霄,星离雨散不终朝。这篇文章主要讲述#yyds干货盘点# SAP UI5 batch 请求的响应解析流程分析相关的知识,希望能为你提供帮助。
batch 请求的回复:
文章图片
使用合适的 handler 解析:
文章图片
该 handler accept 字段:
multipart/mixed
文章图片
【#yyds干货盘点# SAP UI5 batch 请求的响应解析流程分析】首先根据响应字段,获取 content-type:
文章图片
content-type 字段,通过
;
分隔:文章图片
media type:multipart/mixed
文章图片
返回一个 JSON 对象,包含 mediaType 和 boundary 属性:
文章图片
batch 请求的处理器是
batchParser
:文章图片
执行下一行 readBatch 方法:
文章图片
boundary 的一个例子:
batchresponse_16aba97e-4311-41a4-8c64-302727d1d02e
readBatch 的具体处理逻辑还是,基于字符串匹配,即使用 indexOf 查找 boundary 字符串:
文章图片
readline 的实现就是读取单行:
文章图片
batch 第一个 part 的头部字段被读取了出来:
文章图片
文章图片
media type 必须和硬编码的值一致:
application/http
文章图片
文章图片
batch 包含的第一个请求 count 的数据已经读取成功了:
文章图片
已经读取成功了,还要 dispatch:
文章图片
count 的 media-type 是 text/plain:
文章图片
return false 了,response 的 body 有值,data 为 undefined:
文章图片
有4个可用的 handler:
文章图片
text/plain 负责读取 response.body.
textParser 的逻辑最简单,直接返回 body 字段给 response.data:
文章图片
读取第二个 part:
文章图片
这个 part 的 content-type 为 json,因此使用 json handler:
文章图片
文章图片
if (handlerAccepts(handler, cType))
var readContext = createReadWriteContext(cType, version, context, handler);
readContext.response = response;
response.data = https://www.songbingjia.com/android/parseCallback(handler, body, readContext);
return response.data !== undefined;
上述代码的语义是,只有当一个 handler 通过了函数
handlerAccepts
的过滤之后,才能调用 parseCallback,将解析的结果,传递给 response.data
.json handler 使用 JSON.parse 原生 API 进行 json 数据的序列化操作。
文章图片
序列化成功的 json 数据:
文章图片
最后返回的 response 是一个数组:
文章图片
调用最外层的 success handler:
文章图片
batch 请求的回调函数,在函数
_submitBatchRequest
内部:文章图片
推荐阅读
- Spring认证指南(了解如何使用 Spring 执行表单验证)
- 精简指令集计算机
- 编程语言(JavaC++)先学那个好()
- 兄弟们-加油加油加油,不要放弃!linux命令chmodchown奉上!点赞收藏加关注爱你们哟!
- 百度手机助手存储资源优化实践
- 第九节:SpringBoot在线文档Swagger2入门
- 北亚数据恢复HP P2000服务器RAID5硬盘磁头损坏和逻辑故障的数据恢复
- 简单的JS鸿蒙小游戏——垃圾分类(下)
- 你眼中和我眼中的单元测试,看看有何区别()