2017-07-26 7 views
1

SAPUI5プロジェクト内から関数インポート呼び出しを実装しており、パラメータの一部として圧縮されエンコードされた文字列(バイナリデータ)をこの関数のインポートに送信しようとしています。SAPUI5からのOData呼び出しへのバイナリパラメータ

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

POST本体ではなく、urlParameterとしてデータを送信する必要がありますか? – t2t

答えて

0

Base32は、+,=/が許可されているため、URLセーフではないと思います。私は+と=については分かりませんが、/は少なくともそれがセパレータなのでURLを混乱させます。

base64でエンコードされた文字列を標準機能encodeURIComponentで実行してみてください。すべて/%2Fに、すべて+%2B、すべてを=から%3Dに変換します。

関連する問題