2012-08-29 63 views
0

我們試圖從儲物櫃中取出文件和文件夾,但命令(/ d2l/api/le /(D2LVERSION:version)/ locker/myLocker /(string:path) )不喜歡文件或文件夾名稱中的空格。它根據我們如何試圖處理我們末尾的空格(即用%20替換字符串)返回「錯誤請求」或「無效令牌」。Desire2Learn Valence API - 文件名中的空格

我們如何檢索名稱中包含空格的文件/文件夾?

+0

請問請問您使用的LMS版本(包括Service Pack)?我似乎能夠創建,檢查和刪除在9.4.1實例的更衣室中名稱中具有空格的文件夾。 –

+0

您是否也可以請讓我們知道:您是否使用D2L客戶端庫來幫助您進行身份驗證,如果是,哪一個? –

+0

Valence PHP庫用於驗證和版本10.0.0。 – aapis

回答

0

我能想到你遇到的一些可能的問題。

當您向您的D2LUserContext對象提供API路徑時,您只需要傳入帶有內部空格而不是轉義字符的API路徑。所以,一個名爲test file name文件合適的路由可能是這樣的:

/d2l/api/le/1.0/locker/myLocker/firstFolderBelowRoot/test file name 

創建此認證的URL,你會調用

yourD2LUserContext.createAuthenticatedUri('/d2l/api/le/1.0/locker/myLocker/firstFolderBelowRoot/test file name', 'GET') 

這將時尚的驗證網址,您可以使用從您的儲物櫃取回名爲test file name的文件。爲了獲取其包含的文件夾:

yourD2LUserContext.createAuthenticatedUri('/d2l/api/le/1.0/locker/myLocker/firstFolderBelowRoot/', 'GET') 

注意,當你想在更衣室找出一個文件夾中,path參數必須末以斜槓。 (如果你正在試圖抓取一個文件夾,而你沒有斜線,那可能是你的問題的根源。)

一旦你有了這個URL,你需要使用某種HTTP庫實際進行呼叫。我們的內部PHP開發人員推薦使用HttpRequest而不是cURL。最值得注意的是,您應該調用的URL應保留URL的路徑組件中文件或文件夾名稱的空間。

當我使用Python客戶端測試9.4.1實例來從鎖櫃獲取/放置數據,或者使用用戶上下文對象生成URL,然後將這些URL提供給瀏覽器時,事情似乎正常。使用Python客戶端對10.0.0測試實例進行測試似乎也有效。