1 回答
TA贡献1802条经验 获得超5个赞
开箱即用的 ASP.NET Core 仅支持 JSON 或 XML。只要您设置了负载的内容类型,无论控制器操作如何,它都应该正确反序列化。
如果你想要支持任何其他内容类型(例如文本/纯文本),你可以创建一个自定义格式化程序
直接取自 aspnet 示例repo的示例:
public class TextPlainInputFormatter : TextInputFormatter
{
public TextPlainInputFormatter()
{
SupportedMediaTypes.Add("text/plain");
SupportedEncodings.Add(UTF8EncodingWithoutBOM);
SupportedEncodings.Add(UTF16EncodingLittleEndian);
}
protected override bool CanReadType(Type type)
{
return type == typeof(string);
}
public override async Task<InputFormatterResult> ReadRequestBodyAsync(InputFormatterContext context, Encoding encoding)
{
string data = null;
using (var streamReader = context.ReaderFactory(context.HttpContext.Request.Body, encoding))
{
data = await streamReader.ReadToEndAsync();
}
return InputFormatterResult.Success(data);
}
}
- 1 回答
- 0 关注
- 63 浏览
添加回答
举报