【发布时间】:2025-12-15 19:40:01
【问题描述】:
我正在尝试实现我自己的 LRS 来保存 TinCanAPI 语句,为此我需要检索存储学习活动语句详细信息的 Request Payload 中发送的值。 在开发人员工具中查看我的 WebAPI 调用时,我可以看到所需的值,但我无法使用 Request 对象找到它们。
如何从 Request 对象中检索 Request Payload 变量?我已经尝试了请求对象并查看了内容和属性字段,但我似乎看不到要在 C# 中引用的请求有效负载属性。我的有效载荷如下所示:
{
"id": "d3d9aa2a-5f20-4303-84c3-1f6f5b4e9236",
"timestamp": "2014-06-26T11:00:41.432Z",
"actor": {
"objectType": "Agent",
"mbox": "mailto:name@company.com",
"name": "My Name"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/attempted",
"display": {
"und": "attempted"
}
},
"context": {
"extensions": {
"http://tincanapi.com/JsTetris_TCAPI/gameId": "5686f104-3301-459d-9487-f84af3b3915c"
},
"contextActivities": {
"grouping": [
{
"id": "http://tincanapi.com/JsTetris_TCAPI",
"objectType": "Activity"
}
]
}
},
"object": {
"id": "http://tincanapi.com/JsTetris_TCAPI",
"objectType": "Activity",
"definition": {
"type": "http://adlnet.gov/expapi/activities/media",
"name": {
"en-US": "Js Tetris - Tin Can Prototype"
},
"description": {
"en-US": "A game of tetris."
}
}
}
}
我尝试过使用:
var test1 = Request.ToString(); **EMPTY STRING**
var test1 = Request.Content.ReadAsStringAsync().Result; **EMPTY STRING**
var test2 = Request.Content.ReadAsFormDataAsync().Result; **THROWS FORMATTER ERROR DESPITE config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); added in the webapiconfig.cs
【问题讨论】:
-
参考这个:*.com/questions/17971548/… 并且获取内容为字符串后就可以使用System.Web.Script.Serialization类的序列化和反序列化方法了。
标签: c# asp.net-mvc-4 asp.net-web-api httpwebrequest