2012-09-11 29 views
1

每当我做一个GET调用 “/ D2L/API/LE /(D2LVERSION:版本)/(D2LID:orgUnitId)/内容/模块/(D2LID:的moduleId)/结构/” 我得到一个提供的moduleId结构中的内容列表。但是,当我进行POST调用时,出现页面未找到错误。我已经取代我想将内容添加到课程的ID orgUnitId与我想插入内容到模块的ID替换的moduleId。这里是JSON块我送:desire2learn API添加内容

{"StartDate":null, 
"Title":"My Test File", 
"Type":1, 
"ShortTitle":"MTF", 
"TopicType":3, 
"EndDate":null, 
"IsHidden":false, 
"Url":"http://somecollege.edu/", 
"IsLocked":false} 

我不明白为什么我收到未找到错误的岗位,而不是在获取页面。有人有主意吗?

回答

1

我们能够成功地发布我们的测试服务器上的类似链接的话题。 (由Wireshark的捕获)的HTTP分组看起来像这样:

POST /d2l/api/le/1.2/8083/content/modules/24980/structure/?x_t={timestamp}&x_a={app_id}&x_b={user_id}&x_d={user_sig}&x_c={app_sig} HTTP/1.1\r\n 
Host: {test_hostname}\r\n 
Content-Length: 186\r\n 
Content-Type: application/json\r\n 
Accept-Encoding: identity, deflate, compress, gzip\r\n 
Accept: */*\r\n 
\r\n 

JavaScript Object Notation: application/json 
Object 
    Member Key: "StartDate" 
     Null value 
    Member Key: "TopicType" 
     Number value: 3 
    Member Key: "ShortTitle" 
     String value: MTF 
    Member Key: "Title" 
     String value: My Test File 
    Member Key: "Url" 
     String value: http://www.desire2learn.com/ 
    Member Key: "IsHidden" 
     False value 
    Member Key: "IsLocked" 
     False value 
    Member Key: "EndDate" 
     Null value 
    Member Key: "Type" 
     Number value: 1 

这里是JSON数据的样子打印出所发送的UTF-8字符串:

{"StartDate": null, "TopicType": 3, "ShortTitle": "MTF", "Title": "My Test File", "Url": "http://www.desire2learn.com/", "IsHidden": false, "IsLocked": false, "EndDate": null, "Type": 1} 

我看到之间没有显著差异我们的JSON和你的,所以问题可能在于你实际发送的数据包。 404会建议你使用的路线是不完全的,因为它应该是(例如,应该在路线“结构”后斜线)。

这也有可能是你正在运行到权限问题的用户上下文进行调用。请注意,查看课程内容(和结构)的角色权限不同于创建管理课程内容的权限。您应该确保发出呼叫的用户上下文具有授予其相应权限的角色,以便不仅可以查看课程内容,还可以创建和管理内容。

如果这些建议都不能解决问题,那么我建议升级到更高级别的支持(在D2L的Valence问题跟踪器上打开问题,或联系Valence支持电子邮件地址),以便他们可以更直接地帮助您来回更详细。