batch 请求的回复:

使用合适的 handler 解析:

该 handler accept 字段:multipart/mixed

首先根据响应字段,获取 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 = 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 内部:

更多Jerry的原创文章,尽在:“汪子熙”:

SAP UI5 batch 请求的响应解析流程分析相关推荐

  1. SAP UI5 walkthrough第一第二部分解析:data-sap-ui-libs=“sap.ui.commons,sap.ui.table“

    Created by Wang, Jerry, last modified on Nov 02, 2015

  2. SAP UI5 应用开发教程之三十三 - SAP UI5 应用的响应式布局特性(Responsiveness)试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  3. 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)...

    上次遗留了两个问题,先说一下自己的看法 问题: 1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗. 2._request_ctx_stack和_ ...

  4. SAP UI5 应用开发教程之六十二 - 基于 OData V4 的 SAP UI5 表格控件使用方法介绍试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  5. 使用自开发的代理服务器解决 SAP UI5 FileUploader 上传文件时遇到的跨域访问错误试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  6. 如何在 SAP UI5 应用里显示 PDF 文件试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年12月23日为止,目前已经更新了 155 篇,专栏完成度为 51.6%,完成度已经超过了一半了. ...

  7. 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年11月19日为止,目前已经更新了 149 篇,专栏完成度为 49.6%. 作者简介 Jerry ...

  8. SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年9月22日为止,目前已经更新了 133 篇,专栏完成度为 44.3%. 作者简介 Jerry W ...

  9. SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深入剖析试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 本专栏计划的文章数在 300 篇左右,到 2022年9月22日为止,目前已经更新了 133 篇,专栏完成度为 44.3%. 作者简介 Jerry W ...

最新文章

  1. 服务端如何识别是selenium在访问以及解决方案参考二
  2. css学习任务二:切图写代码
  3. JSP文件管理后门工具jsp-file-browser
  4. 【ASP.NET】js动态生成的控件,在后台获取不到怎么办?
  5. 04 javascirpt基础知识---听课笔记
  6. JVM发生频繁 CMS GC,罪魁祸首是这个参数!
  7. 数字证书原理分析总结
  8. 简述Intel的MESI缓存一致性协议
  9. Java——类的继承
  10. Spark稀疏向量和稠密向量
  11. 文件服务器 标签,别再「新建文件夹」了,这个标签管理器可以让你的硬盘更整洁...
  12. win7怎么把计算机放到桌面6,手机投屏到电脑win7最简单具体操作步骤
  13. openerp QWeb
  14. 技术分享 | 开发板网口热插拔自动获取IP地址
  15. Xposed学习笔记之蚂蚁森林能量自动收取模块
  16. 基于select2的二级联动
  17. Linux快捷键大全
  18. CMD控制台(命令提示符)的打开方式
  19. python 导入模型_scikit-learn系列之如何存储和导入机器学习模型
  20. 电脑桌面图标变成白色图标如何处理

热门文章

  1. iview地区加载_LoadingBar 加载进度条
  2. android builder模式,模式设计(三:Builder模式) (转)
  3. 脚本监控网络状态,输出日志并归档(V2)
  4. 【知云】第十二期:处于风口浪尖上的直播视频网站,如何快速部署直播监管?...
  5. 团队项目—每日记录2
  6. Jquery ajax提交表单几种方法详解
  7. Android的配置界面PreferenceActivity
  8. PHP5魔术函数与魔术常量
  9. Ubuntu中设置环境变量PATH
  10. 常用正则表达式大全——包括校验数字、字符、一些特殊的需求