1 回答

TA貢獻1802條經(jīng)驗 獲得超5個贊
開箱即用的 ASP.NET Core 僅支持 JSON 或 XML。只要您設(shè)置了負載的內(nèi)容類型,無論控制器操作如何,它都應(yīng)該正確反序列化。
如果你想要支持任何其他內(nèi)容類型(例如文本/純文本),你可以創(chuàng)建一個自定義格式化程序
直接取自 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 關(guān)注
- 86 瀏覽
添加回答
舉報