![](/img/trans.png)
[英]How to modify token endpoint response body with Owin OAuth2 in Asp.Net Web API 2
[英]How to create an endpoint that accepts any content type in the request body using ASP.Net Web API
我想创建一个通用的API端点,客户端可以将文本或文件数据发布到该端点,而我们不知道数据的内容/媒体类型。 似乎该框架要求为HTTP头中传递的任何内容类型指定一个内容格式化程序,否则会引发错误。 我不想为我们可能接受的每种可能的媒体类型定义一个格式化程序,因为我们尚不知道它们可能包含的内容。
有没有一种方法可以用通用媒体类型格式化程序定义端点,或者根本不指定端点? 如果我将通用对象用作方法参数,似乎并不介意,但是该框架一直困扰着没有格式化程序就无法处理媒体类型。
我们实际上并不需要能够处理这些数据,而只是存储它(用于消息传递系统)。
附带说明一下,我宁愿将此数据作为请求正文的原始内容接收,而不是使用多部分表单请求,但是如果这样做更有意义,则可以选择。
您可以自己阅读内容,从而完全绕过格式化程序。 这是一个例子:
public async Task Post()
{
string content = await Request.Content.ReadAsStringAsync();
// Store away the content
}
这根本不需要您使用或定义任何格式化程序。
或者,如果您想比Youssef的建议低得多,也可以做。
public Task<HttpResponseMessage> Post(HttpRequestMessage request) {
var stream = await request.Content.ReadAsStreamAsync();
return new HttpResponseMessage(HttpStatusCode.Ok) { RequestMessage = request } ;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.