SAP UI5 OData 请求的自定义 HTTP header 设置方法

简介: SAP UI5 OData 请求的自定义 HTTP header 设置方法

代码如下:


oModel.setHeaders({"myHeader1" : "value1", "myHeader2" : "value2"});


我们可以先通过如下代码,拿到一个 OData Service url 对应的 OData Model 实例:


// "ODataModel" required from module "sap/ui/model/odata/v2/ODataModel"
var oModel = new ODataModel("http://myserver/MyService.svc/?myParam=value&myParam2=value");


添加自定义标头时,如果未在标头映射中再次指定,所有以前的自定义标头都将被删除。 有些header是私有的,也就是OData模型内部设置的,不能设置:


  • “accept”


  • “accept-language”


  • “maxdataserviceversion”


  • “dataserviceversion”


  • “x-csrf-token”


OData 模型的绑定路径语法与相对于 OData 中用于访问特定实体或实体集的服务 URL 的 URL 路径相匹配。


可以根据服务元数据中定义的 OData 服务结构访问 OData 模型提供的数据。 URL 参数(例如过滤器)不能添加到绑定路径中。 绑定路径可以是绝对的或相对的。 绝对绑定路径会立即解析。 相对路径只有在能够自动转换为绝对绑定路径的情况下才能被解析。


例如,如果属性绑定到相对路径,然后父控件绑定到绝对路径,则可以将相对属性路径解析为绝对路径。


ODataModel 中的以下绑定示例取自 Northwind 演示服务。


绝对绑定路径(以斜杠 (‘/’) 开头):


"/Customers"
"/Customers('ALFKI')/Address"


可以使用上下文解析的相对绑定路径(例如“/Customer(‘ALFKI’)”):


"CompanyName"
"Address"
"Orders"


解析成的绝对路径:


"/Customer('ALFKI')/CompanyName"
"/Customer('ALFKI')/Address"
"/Customer('ALFKI')/Orders"


导航属性(navigation properties),用于标识单个实体或实体集合:


"/Customers('ALFKI')/Orders"
"/Products(1)/Supplier"


从 OData 服务请求的数据缓存在 OData 模型中。


它可以通过 getProperty() 方法访问,该方法返回实体对象或值。 此方法不从后端请求数据,因此您只能访问已请求和缓存的实体:


/

oModel.getProperty("/Customer('ALFKI')/Address");


下列代码返回 undefined:



只能使用此方法访问单个实体和属性。 要访问实体集,可以通过列表绑定获取所有读取实体的绑定上下文。 此方法返回的值是模型中数据的副本,而不是 JSONModel 中的引用。

相关文章
|
10天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
29 14
|
21天前
|
Java
java原生发送http请求
java原生发送http请求
|
28天前
|
网络协议 Linux iOS开发
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求
57 1
|
10天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
21 8
|
1天前
|
JSON 编解码 Go
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第25天】Go语言`net/http`包提供HTTP客户端和服务器功能,简化高性能网络应用开发。本文探讨如何发起HTTP请求,常见问题及解决策略。示例展示GET和POST请求的实现。注意响应体关闭、错误处理、内容类型设置、超时管理和并发控制。最佳实践包括重用`http.Client`,使用`context.Context`,处理JSON以及记录错误日志。通过实践这些技巧,提升HTTP编程技能。
15 1
|
2天前
|
前端开发 API UED
AngularJS的$http服务:深入解析与进行HTTP请求的技术实践
【4月更文挑战第28天】AngularJS的$http服务是核心组件,用于发起HTTP请求与服务器通信。$http服务简化了通信过程,通过深入理解和实践,能构建高效、可靠的前端应用。
|
3天前
|
Go 开发者
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第24天】Go语言的`net/http`包在HTTP客户端编程中扮演重要角色,但使用时需注意几个常见问题:1) 检查HTTP状态码以确保请求成功;2) 记得关闭响应体以防止资源泄漏;3) 设置超时限制,避免长时间等待;4) 根据需求处理重定向。理解这些细节能提升HTTP客户端编程的效率和质量。
14 1
|
4天前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
5天前
|
JSON 数据格式 索引
ES 查看索引的属性的http请求
在 Elasticsearch 中,要查看索引的属性,可以通过发送 HTTP 请求来执行以下操作: 1. **获取索引的映射(Mapping)**: 可以使用 `GET` 请求访问 Elasticsearch 的 `_mapping` 端点来获取特定索引的映射信息。 示例请求: ```http GET http://<elasticsearch_host>:<port>/<index_name>/_mapping ``` 2. **获取索引的设置(Settings)**: 可以使用 `GET` 请求访问 Elasticsearch 的 `_setting
|
5天前
|
网络架构 Python
在Flask中,如何定义路由并处理HTTP请求的不同方法(GET、POST等)?
【4月更文挑战第25天】在Flask中,使用`@app.route()`装饰器定义路由,如`/hello`,处理GET请求返回&#39;Hello, World!&#39;。通过添加`methods`参数,可处理不同HTTP方法,如POST请求。单一函数可处理多种方法,通过检查`request.method`区分。动态路由使用 `&lt;variable_name&gt;` 传递URL变量到视图函数。这些基础构成处理HTTP请求的Flask应用。
12 1