尽管设置了preferredNoContent,但SDK在PUT之后发送了意外的GET请求

2020-08-17 13:03发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我的应用程序中存在以下问题:

1。 我发送一个PUT请求,该请求以204响应(如预期)

2。 SDK随后会立即发送GET请求(无意)

为减轻压力,我使用了`preferNoContent`标志,但GET请求仍然被触发。

让选项= RequestOptions()
 options.sendEmptyUpdate = true
 options.updateMode = .replace
 options.preferNoContent = true
 service.updateEntity(item,标头:.empty,选项:options){错误
     DispatchQueue.main.async {
         如果让错误=错误{
             完成(.failure(error.niceError))
         }其他{
             完成(.success(true))
         }
     }
 }
 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我的应用程序中存在以下问题:

1。 我发送一个PUT请求,该请求以204响应(如预期)

2。 SDK随后会立即发送GET请求(无意)

为减轻压力,我使用了`preferNoContent`标志,但GET请求仍然被触发。

让选项= RequestOptions()
 options.sendEmptyUpdate = true
 options.updateMode = .replace
 options.preferNoContent = true
 service.updateEntity(item,标头:.empty,选项:options){错误
     DispatchQueue.main.async {
         如果让错误=错误{
             完成(.failure(error.niceError))
         }其他{
             完成(.success(true))
         }
     }
 }
 
付费偷看设置
发送
5条回答
派大星 ヾ
1楼-- · 2020-08-17 13:53

转发到开发。

Baoming ROSE
2楼-- · 2020-08-17 13:42

这是正确的。

天桥码农
3楼-- · 2020-08-17 13:40

根据您的描述:" SDK随后立即发送GET请求(无意)"

这似乎是一个在线应用程序,对吗?

zhangjiyang1323
4楼-- · 2020-08-17 13:38

我不是这些类的所有者,但我想它的目的是默认情况下在CRUD调用后更新值。/p>

open func updateEntity(_实体:SAPOData.EntityValue ...

open func createEntity(_实体:SAPOData.EntityValue ....

然后可以使用loadIfUpdateStatus,loadIfCreateStatus ...来关闭loadEntity

标头不是由SAPOData评估的,它是由Put请求中的后端而不是随后的Get请求中的评估。

204表示未返回Put的内容。

对于loadEntity请求,标头只是被忽略。

xfwsx85
5楼-- · 2020-08-17 13:52

https://help.sap.com/doc/978e4f6c968c4cc5a30f9d324aa4b1d7/Latest/en-US/Documents/Framework/SAPOData ServiceOptions.html#/s:8SAPOData14ServiceOptionsC18loadIfUpdateStatusSivp

在线文档:

loadIfUpdateStatus

默认为 204 (HTTP无内容),如果更新响应状态为强制,则在 updateEntity 返回之前强制执行隐式的 loadEntity 调用。 来自服务器的是> = 204 。 如果此属性的值为 200 (HTTP OK),则将始终在 updateEntity 返回之前发出隐式的 loadEntity 调用,以检索帖子。 -更新实体状态。 如果此属性的值为 0 ,则将永远不会发出隐式的 loadEntity 调用。

声明

SWIFT

 最终公共变量loadIfUpdateStatus:Int  

一周热门 更多>