gpt4 book ai didi

json - 尝试解析 WebAPI 中的 ReadAsFormDataAsync 结果时没有 MediaTypeFormatter 错误

转载 作者:行者123 更新时间:2023-12-03 02:12:23 28 4
gpt4 key购买 nike

我创建了一个 WebAPI 项目来帮助捕获 TinCan 学习类(class)中的语句,但我在检索任何请求负载详细信息时遇到了极大的困难。在此有效负载中,我传递了我试图捕获的整个语句,但在尝试使用以下内容进行读取时:

var test = Request.Content.ReadAsFormDataAsync().Result.ToString();

我收到以下错误消息:

没有 MediaTypeFormatter 可用于从媒体类型为“application/json”的内容中读取类型为“FormDataCollection”的对象。

我尝试过将结果对象转换为 JSON 来解决这个问题,但没有任何用处。我需要在配置中的某个地方配置 json 吗?我尝试过添加

var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);

还有:

var jsonFormatter = config.Formatters.JsonFormatter;
config.Formatters.Insert(0, jsonFormatter);

到我的 WebApiConfig.cs 文件,如另一个有关如何返回 json 的问题中的回答,但我似乎无法传递此错误。我还设置了 config.formatter 来接受 application/json 但这也不起作用

Controller 代码

public void Put([FromBody]string statementId)
{
var test = Request.Content.ReadAsFormDataAsync().Result;

System.Diagnostics.EventLog.WriteEntry("Application", "/xAPI/PUT has been called", System.Diagnostics.EventLogEntryType.Error);
}

最佳答案

从您提供的错误消息来看,请求内容似乎在 application/json 中。 ReadAsFormDataAsync()只能读取 application/x-www-form-urlencoded 类型的内容。

在这种情况下,您可以使用ReadAsAsync<>如果您定义了想要反序列化的类型,或者只需使用 ReadAsStringAsync<>如果您只想将内容阅读为 string .

关于json - 尝试解析 WebAPI 中的 ReadAsFormDataAsync 结果时没有 MediaTypeFormatter 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com