![](/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.