我正在嘗試在我的d2l orgUnit中創建內容,但我一直收到404頁未找到的內容。我從Android模擬器調用這個。我已經成功創建了一個模塊以及使用POST API的主題鏈接。我看過404 Posting Content to Desire2Learn這個帖子,它幫助我獲得了模塊和鏈接的工作,但我無法上傳文件作爲工作主題。我懷疑它可能是URL,因爲我不確定要放什麼,所以我放置了一個在組織單元中創建的相對路徑。文章404 Posting Content to Desire2Learn提到在組織單位現有內容空間中使用「有效的位置URL」。我也試過/ content/enforced/...文件夾作爲URL無濟於事。我不知道這是否是問題,或紅鯡魚...404嘗試發佈文件主題時出錯
這裏是我的代碼:
String body = "--xxBoundaryxx " +
"Content-Type: application/json " +
"{" +
"\"Title\": \"Testing an upload\"," +
"\"ShortTitle\": \"test\"," +
"\"Type\": 1," +
"\"TopicType\": 1," +
"\"URL\": \"/test/\"," +
"\"StartDate\": null," +
"\"EndDate\": null," +
"\"IsHidden\": false," +
"\"IsLocked\": false" +
" } " +
"--xxBoundaryxx " +
"Content-Disposition: form-data; name=\"file 0\"; filename=\"test.txt\" " +
"Content-Type: text/plain " +
"This is my sample file to try it out.";
URI uri = userContext.createAuthenticatedUri("/d2l/api/le/1.1/{OrgID}/content/modules/{ModuleID}/structure/", "Post");
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(uri);
post.addHeader("Content-Type", "multipart/mixed; boundary=xxBoundaryxx");
post.setEntity(new StringEntity(body));
HttpResponse response = httpClient.execute(post);
Log.i(TAG, "Statusline: " + response.getStatusLine());
這裏是導致身體(我把\ r \ n作爲換行符作爲好吧,但它沒有幫助)。
--xxBoundaryxx
Content-Type: application/json
{
"Title": "Testing an upload",
"ShortTitle": "test",
"Type": 1,
"TopicType": 1,
"URL": "/test/",
"StartDate": null,
"EndDate": null,
"IsHidden": false,
"IsLocked": false
}
--xxBoundaryxx
Content-Disposition: form-data; name="file 0"; filename="test.txt"
Content-Type: text/plain
This is my sample file to try it out.
這是怎麼回事? getStatusLine總是返回404錯誤...我知道這不是權限問題,因爲我可以使用非常相似的代碼成功創建模塊並鏈接主題。任何指導極大的讚賞。
感謝您的反饋意見。我嘗試添加--xxBoundaryxx--來終止POST正文,並將Url元素簡單地寫爲「test.txt」,而我仍然得到了相同的404。我看了一下具體的例子(很多很多次!),但我只是似乎無法得到它的工作。自從我原來的帖子以來,我也嘗試了該頁面上的第三個示例(上傳新聞項目),將Url從圖片中移出,而我仍然獲得了404圖片。我只刪除了圖片部分並將其更改爲我的OrgId。是否有可能發佈一段代碼(首選java)來完成準備HttpPost實例(或等效)? –
我也嘗試了[在示例站點上]的新聞發佈(http://samples.valence.desire2learn.com/samples/GettingStartedSample/),但它返回了400未知錯誤。我懷疑是因爲沒有辦法添加Content-Type:multipart/mixed; boundary = xxBoundaryxx標題參數。 –
感謝您的示例。我爲我們的服務器逐字嘗試,除了我更改了/ content/...文件夾以反映我在「管理文件」部分中看到的根文件夾結構。我總是得到404錯誤,不知道什麼是錯的。有什麼辦法可以在我們的後端使用[像這樣的東西](http://samples.valence.desire2learn.com/samples/GettingStartedSample)來試試這個?每個多部分帖子都會失敗,但不幸的是,我無法在[入門頁面](http://samples.valence.desire2learn.com/samples/GettingStartedSample) –