点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我正在尝试对CDS服务公开的oData api的批量请求。 我正在此示例存储库中针对书店示例测试请求: https://github.com/git-ashish/cloud-cap-samples ,但始终出现以下错误:
POST/admin/$ batch [2020-03-04T12:04:40.503Z | 警告| 1254189]:预计在位置0处的边界 [2020-03-04T12:04:40.505Z | 警告| 1254189]:标头已发送 [2020-03-04T12:04:40.505Z | 警告| 1254189]:标头已发送 [2020-03-04T12:04:40.505Z | 错误| 1254189]:响应数据已经发送,而响应缓冲区中仍有可用数据 [2020-03-04T12:04:40.505Z | 警告| 1254189]:标头已发送 [2020-03-04T12:04:40.506Z | 警告| 1254189]:标头已发送 [2020-03-04T12:04:40.506Z | 错误| 1254189]:响应数据已经发送,而响应缓冲区中仍有可用数据
我不确定问题是否与批处理请求的正文形成方式有关。 任何指针都将不胜感激。
请求是:
curl --location --request POST'http://localhost:4004/admin/$ batch'\ --header'内容类型:多部分/混合; boundary = batch_123'\ --header'授权:基本YXNoaXNoOg =='\ --data-raw'--batch_123 内容类型:多部分/混合;边界= changeset_456 内容传输编码:二进制 --changeset_456 内容类型:应用程序/http 内容传输编码:二进制 POST/admin/Authors HTTP/1.1 内容类型:application/json 内容长度:50 接受:application/json { " ID":101, "名称":"艾米莉·勃朗特二世"。 } --changeset_456 内容类型:应用程序/http 内容传输编码:二进制 POST/admin/Authors HTTP/1.1 内容类型:application/json 内容长度:48 接受:application/json { " ID":221, "名称":"福尔摩斯" } --changeset_456-- --batch_123--'
在HTTP中:
POST/admin/$ batch HTTP/1.1 主机:localhost:4004 内容类型:多部分/混合; boundary = batch_123 授权:基本YXNoaXNoOg == --batch_123 内容类型:多部分/混合;边界= changeset_456 内容传输编码:二进制 --changeset_456 内容类型:应用程序/http 内容传输编码:二进制 POST/admin/Authors HTTP/1.1 内容类型:application/json 内容长度:50 接受:application/json { " ID":101, "名称":"艾米莉·勃朗特二世"。 } --changeset_456 内容类型:应用程序/http 内容传输编码:二进制 POST/admin/Authors HTTP/1.1 内容类型:application/json 内容长度:48 接受:application/json { " ID":221, "名称":"福尔摩斯" } --changeset_456-- --batch_123--
尽管我无法使用"多部分/混合"类型的批处理请求成功进行测试,但是JSON批处理请求可以成功进行测试并可以与odata v4一起使用。 关于它的更多详细信息可以在文档中找到:批量请求, OData JSON
这是一个示例JSON批处理请求,可与示例书店代码一起使用。
干杯!
嗨, Ashish Singh,
这仍然对您有用吗? 如果我在帽应用程序中尝试此操作,则会出现以下错误:
似乎如此,仅支持" multipart/mixed"。
能否请您确认JSON批仍在工作?
最诚挚的问候,
Chris
嗨Ashish,
确保使用回车换行符(即CRLF或" \ r \ n")。
最好,
塞巴斯蒂安
感谢您的后续评论和详细信息,塞巴斯蒂安!
我正在Mac OS上工作,并使用Postman和cURL来测试api。 为了确保使用CRLF,我使用了VS Code,并确保将行尾序列设置设置为CRLF。
在第一个边界上加上\ r \ n后,我现在遇到以下错误:
要针对确切的查询进行测试,请使用以下cURL:
有什么建议吗?
谢谢!
一周热门 更多>