繁体   English   中英

API 在 ASP.NET 核心中返回不受支持的媒体类型

[英]API returning unsupported media type in ASP.NET Core

当我向它发出请求时,我有以下 API,它返回不受支持的媒体类型我不知道是什么导致了这个问题。

[HttpPost("select/manager/{projectId}")]
public async Task<ActionResult<string>> SetProjectManager([FromBody] string name, string projectId)
{
    var (isValid, username, password) = spManager.GetCredentials(HttpContext.Request.Headers["x-token"]);

    if (!isValid || string.IsNullOrEmpty(name))
    {
        return BadRequest("Bad Key!");
    }

    var result = await spManager.SetProjectManager(username, password, name, projectId);

    if (result.Success == true)
    {
        return Ok(new SubmissionResponse { Success = true, ErrorCode = null });
    }
    else
    {
        return NotFound(new SubmissionResponse { Success = false, ErrorCode = "Not Found!" });
    }
}

我在 header 中发送一个令牌,但屏幕截图中没有显示:

在此处输入图像描述

用 {"name": "cristof"} 替换 "cristof" 并将主体类型更改为 Json。

当我向它发出请求时,它返回不受支持的媒体类型

HTTP 415 Unsupported Media Type错误表示服务器拒绝接受请求,因为负载格式是不受支持的格式。 请注意,它不为 ASP.NET 核心 Web API 中的纯文本提供内置输入格式化程序。

该框架为 JSON 和 XML 提供内置输入和 output 格式化程序。 正如@Nkosi 建议的那样,为了使您的数据请求正常工作,您可以尝试将Content-Type更改为application/json

在此处输入图像描述

此外,如果您真的希望您的 API 能够很好地处理纯文本输入,您可以尝试实现自定义纯文本输入格式化程序。

https://docs.microsoft.com/en-us/aspnet/core/web-api/advanced/custom-formatters?view=aspnetcore-5.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM