當我打電話請求等:西里爾在請求
<serverUrl>/objects.svc/objects(<some-cyrillic-str>)
我有像錯誤: 「URI格式錯誤」。
當我加單引號,所以它變得像:
<serverUrl>/objects.svc/objects('<some-cyrillic-str>')
我有這樣的錯誤:「關鍵屬性‘ID’無效」。
我認爲這個問題是:URL編碼。 在請求URL的servlet西里爾部分變成:%D7%....等),Olingo無法使用它。
問:在這種情況下使用西里爾文的正確方法是什麼?
UPD: Cyr。部分URL由js(encodeURLComponent())工作併發送。 Servlet(然後Olingo)得到這個部分像%D7%...當我嘗試解碼過濾器中的url(在servlet之前)時,我有適當的cyr。部分在過濾器中,但servlet不能再被這樣的URL調用。
正確的方法是將URL編碼 - 在將它傳遞給Olingo之前 - 設計一些解碼機制。 Olingo似乎並不「理解」它的原因很可能是因爲編碼字符串從未被解碼過。 – TR1
Thanx回覆。 查看UPD的問題。 – slider
您使用哪種Olingo版本?如果您將編碼的URL發送到Olingo庫,則Olingo應該正確解碼並處理請求。如果key屬性的類型是Edm.String,則需要單引號。否則,你需要離開它們。 – chrisam