我是Valence API的新手,并制定了以下请求(请注意我正在访问作为D2L的新客户端分配给我们的sandboxu.brightspace.com实例):
PUT /d2l/api/lp/1.6/users/1900?x_a ...
(身份验证信息确实有效,我不在此处包含它)
内容/帖子正文
{
"Activation":
{
"IsActive":"True"
},
"userName":"NCU.A5",
"OrgDefinedId":"NCU.A5",
"FirstName":"NCU",
"MiddleName":"J",
"LastName":"A5",
"ExternalEmail":"NCU.A5@desire2learncom.desire2learndemo.com"
}
请注意,我使用完全相同的网址进行GET,并成功检索以下内容:
{
"OrgId":6607,
"UserId":1900,
"FirstName":"NCU",
"MiddleName":null,
"LastName":"A5",
"UserName":"NCU.A5",
"ExternalEmail":"NCU.A5@desire2learncom.desire2learndemo.com",
"OrgDefinedId":"NCU.A5",
"UniqueIdentifier":"NCU.A5",
"Activation":{"IsActive":true},
"DisplayName":"NCU A5"
}
因此用户标识有效。
但是,此PUT请求返回404 / Not Found。我查看了Valance API在线文档,它看起来像请求块具有所有正确的元素。此请求应将中间名从null更新为“J”。
我确信我做错了但我找不到。
答案 0 :(得分:0)
我发现了我的问题。我根据D2L示例代码使用RestSharp来制定请求。我将PostBody设置为json字符串。根据我们在CodeGur for RestSharp上发现的问题,它将字符串重新序列化,用转义引号(\“)替换所有引号。我在发送之前检查了RestSharp请求,并且它没有这些额外的字符,但它在处理请求时将它们放入。
我评论了这一行: // string postBody = SimpleJson.SerializeObject(postBodyValues); 并更改了AddBody()以接受反序列化的对象并且它有效。