我很好奇是否有人在 Java 中使用 Valance 成功实现了 D2L 中的路由,如下所示:
PUT /d2l/api/le/(D2LVERSION: 版本)/(D2LID: orgUnitId)/grades/(D2LID:gradeObjectId)/values/(D2LID: userId)
当我彻底检查所需的 ID 是否与我在 D2L 中的记录相匹配时,我一直在努力从这个电话中收到 404。当我使用我在 Java 中使用的讲师级别帐户登录 D2L 时,我看到课程、测试和参与者都在那里。这些 ID 在 Java 代码中用于调用上述路由,但我收到 404 并且成绩未更新。
这是代码的片段:
HttpURLConnection connection = null ;
try {
uri = userContext.createAuthenticatedUri ("/d2l/api/le/1.0/"+courseId+"/grades/"+gradeId+"/values/"+ userId, "PUT");
connection= (HttpURLConnection)uri.toURL().openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("PUT");
connection.setRequestProperty("Content-Type", "application/json");
OutputStream os = connection.getOutputStream();
String updatedScore = "{\"GradeObjectType\":1,\"PointsNumerator\":\"5\"}";
os.write(updatedScore.getBytes());
os.flush();
}catch(Exception e){
e.printStackTrace();
}
courseID、gradeID 和 userID 正在传入并已在 D2L Web UI 中进行验证。如您所见,我为 GradeObjectType 为 1 和 PointsNumerator 为 5 创建了一个 JSON 字符串。除了默认的 Instructor 帐户权限之外,是否还有特殊权限才能允许此类调用?
任何想法将不胜感激。谢谢