点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我尝试使用API在SAPUI5仪表板中为SAP AIN创建模型。 我收到响应" HTTP 415不支持的媒体类型"。
var有效负载= { " internalId":sModelId, " templateId":"", " organizationID":" ", " description":{" short":sModelId}, " equipmentTracking":" 1" }; oJson.loadData("/img/ain/services/api/v1/models",encodeURI(JSON.stringify(payload)),true," POST");
oJson 是JSONMOdel。 "/img/ain/" 提供API的目的地。 如何正确交付有效载荷。 我怎么了?
第二个问题:
我确实成功使用了针对"/img/ain/services/api/v1/models" 的GET请求来列出所有模型。 但是,当我尝试在查询参数中设置过滤器时,如果过滤后的制造商字符串中有" +"号,则该过滤器将无法工作。 我确实使用了uri编码。
这是我的代码:
var sQuery =" $ filter =(制造商eq'" + encodeURIComponent(sManu)+"')"; this._oFilteredModel.loadData("/img/ain/services/api/v1/models",sQuery);
sManu 是一个字符串,用于定义由制造商过滤的制造商,而 _oFilteredModel 是一个JSONModel。
尼古拉斯嗨,
问题1:在您的代码段中,您正在使用loadData函数中的oParameters(第二个参数)将uri编码的有效负载附加到请求。 根据SAPUI5文档,这些参数被当作URL参数处理。
SAP UI5 API参考: oParameters -> "与请求一起发送到服务器的映射或字符串。发送到服务器的数据 作为查询字符串附加到URL。如果data参数的值是一个对象(映射),则将其转换为字符串并经过url编码,然后再附加至URL。"
在您的特定情况下,该请求会自动将请求处理为 Content-Type" application/x-www-form-urlencoded"。 T 他将进一步导致415响应。
在SAP资产智能网络的API文档中,您将看到内容类型" application/json"是必需的。 除此之外,必须始终将请求JSON有效负载放入POST请求的正文中。
提到这一点,我的建议是使用一种更灵活的方法来获取您的数据(AJAX请求,XHR等)。
请尝试以下片段,该片段应该可以正常工作。
问题2:
我可以在SAPUI5和Postman中复制您的问题。
对过滤器值进行编码绝对是正确的方法,但是似乎在过滤器查询中存在带" +"号的问题(两者都存在) 编码和未编码)
我尝试使用编码的"&"符号进行完全相同的操作,并返回正确的对象。
请创建支持通知单,以使开发团队检查此潜在错误。
最好的问候
Ingo
嗨Ingo,
非常感谢! 我尝试按照您的建议使用ajax,它可以工作。 对于第二期,我将创建一个支持票。
最好的问候
尼古拉斯
一周热门 更多>