2017-07-26 89 views
1

我实现从SAPUI5项目中的功能导入调用,我试图发送一个压缩和编码的字符串(即作为二进制数据)作为参数传递给该函数导入的一部分:二进制参数的OData调用从内SAPUI5

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版本。

+0

什么实际的URL看起来在致电时是怎样的? – Jorg

+0

你确定你必须发送你的数据作为urlParameter,而不是在POST正文? – t2t

回答

0

我不认为Base64是URL安全的,因为它允许+,=/。我不确定关于+和=,但/至少会混淆URL,因为它是分隔符。

尝试运行通过标准的功能encodeURIComponent编码字符串中的Base64。它将把所有/%2F,所有+%2B和所有=%3D