2017-07-26 45 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