C# 如何从请求对象获取HttpContent?

C# 如何从请求对象获取HttpContent?,c#,.net,asp.net-web-api,httpcontent,C#,.net,Asp.net Web Api,Httpcontent,如果调用方添加HttpContent: using (var content = new MultipartFormDataContent()) { HttpContent additionalContent = StringContent("just a test"); content.Add(additionalContent); 那么,接收者如何检索这些额外的内容呢 我看到过人们称之为Request.Content的例子。但是,HttpContent.Current.Reque

如果调用方添加HttpContent:

using (var content = new MultipartFormDataContent()) 
{
  HttpContent additionalContent = StringContent("just a test");
  content.Add(additionalContent);
那么,接收者如何检索这些额外的内容呢

我看到过人们称之为Request.Content的例子。但是,HttpContent.Current.Request没有内容对象


接收者是一个
[HttpPost]
WebAPI。

我认为你请求的正文只不过是请求的内容。
请使用F12开发者工具->网络->请求的响应部分或正文部分进行交叉检查。

使用
ReadAsMultipartAsync
扩展方法获取内容部分,然后使用
ReadAsStringAsync
解析字符串内容:

var provider = await Request.Content.ReadAsMultipartAsync();
var content = provider.Contents.FirstOrDefault(); //assumed single content part has been sent
if (content != null)
{
    var result = await content.ReadAsStringAsync();
}

检查一下,关于将方法类型更改为Task,这是我不想做的。你是什么意思?这有什么关系?这在返回HttpMessageResponse的方法中不起作用。我不想为此重新构造方法。如果我添加.Result,很长一段时间后,会引发一个异常:任务已取消。“发生了一个或多个错误”。很模糊。事实上,我在客户端捕捉到了错误,即使这一行在webapi端被包装在一个try/catch中。还有任何不将web api操作转换为
异步任务的真正原因吗。