Загрузка в папку в моем личном шкафчике с использованием REST API Desire2Learn

Как загрузить файл в свой шкафчик с помощью REST API Desire2Learn? Сервер возвращает код состояния 200, но «Произошла непредвиденная ошибка».

POST /d2l/api/le/1.0/locker/mylocker/?x_a={appID}&x_c={appSig}&x_b={myUserID}&x_d={myUserSig}&x_t={time) HTTP/1.1
Host: myHost.com
Accept: */*
Content-type: multipart/mixed;boundary=BOUNDARY
Content-Length: 181

--BOUNDARY
Content-Type: text/plain
Content-Length: 4

test
--BOUNDARY
Content-type: application/json
Content-Length: 36

{"Description":"","IsPublic":"true"}
--BOUNDARY--

РЕДАКТИРОВАТЬ (другой запрос, тот же результат)

POST /d2l/api/le/1.0/locker/mylocker/testFile?{authQueryparms}
Host: myHost.com
Accept: */*
Content-type: multipart/mixed;boundary=BOUNDARY
Content-Length: 288

--BOUNDARY
Content-Type: text/plain
Content-Length: 4

test
--BOUNDARY
Content-type: application/json
Content-Length: 142

{ "Description": {"Text": "Text description string for file.", "HTML": "<p>Text description string for <i>file</i>.</p>" }, "IsPublic": true }
--BOUNDARY--

person R. Moore    schedule 27.04.2012    source источник


Ответы (1)


(Хорошо, попробуем еще раз)

Похоже, что проблема с вашим первоначальным вопросом заключается в том, что серверная служба не знает, какое имя файла дать вашему загруженному файлу, а не в том, что у нее есть проблема с тем, куда его поместить (он попытается поместить его в ваш корневая папка шкафчика). Часть вашего запроса, связанная с загрузкой файла, должна иметь заголовок Content-Disposition, содержащий имя файла. Вот пример запроса, который, как мы подтвердили, работает на наших тестовых серверах:

POST http://test.host/d2l/api/le/1.0/locker/mylocker/?{authQueryPams} HTTP/1.1
Content-Type: multipart/mixed; boundary=8cefca62f73c56c
Host: test.host
Content-Length: 595514

--8cefca62f73c56c
Content-Type: application/json

{"Description":"Test","IsPublic":false}
--8cefca62f73c56c
Content-Disposition: form-data; name=""; filename="test.jpg"
Content-Type: image/jpeg

<binary data>
--8cefca62f73c56c--
person Viktor Haag    schedule 27.04.2012
comment
Хорошо, мой запрос теперь выглядит как редактирование выше, но с тем же результатом: - person R. Moore; 28.04.2012
comment
Я попытался отредактировать этот вопрос/ответ, чтобы вернуться к исходному состоянию, поскольку мой первоначальный ответ был настолько неверным, что вводил в заблуждение. - person Viktor Haag; 10.05.2012