从SAPUI5中调用OData的二进制参数

时间:2017-07-26 10:55:09

标签: odata sapui5

我正在从SAPUI5项目中实现函数导入调用,并尝试将压缩和编码的字符串(即二进制数据)作为参数的一部分发送到此函数import:

oDataModel.callFunction("/myFunctionImport", {
  method: "POST",
  urlParameters: {
    SubmissionID: 1,
    JSONzip: sBase64Data
},

success: function (oData, oResponse) {
   // ...
},

error: function (oError) {
   // ... }
});

其中“sBase64Data”是压缩和编码的JSON字符串。正确设置网关,以便将函数导入的参数类型分别设置为Edm.Int32和Edm.Binary。

运行此代码时,我不断收到“格式错误的URI文字语法”错误。关于如何直接将二进制参数发送到函数导入调用的任何想法?

我使用的是OData 2.0版。

1 个答案:

答案 0 :(得分:0)

我认为Base64不是URL安全的,因为它允许+=/。我不确定+和=但/至少会弄乱一个URL,因为它是分隔符。

尝试通过标准函数encodeURIComponent运行base64编码的字符串。它会将所有/转换为%2F,将所有+转换为%2B,将所有=转换为%3D