C# 在API中使用多部分数据处理请求

C# 在API中使用多部分数据处理请求,c#,asp.net,api,rest,multipart,C#,Asp.net,Api,Rest,Multipart,我有一个API(Asp.Net,用C#编写),它接收一个POST请求,请求是多部分/表单数据。我处理请求的代码如下: if (request.Content.Headers.ContentType.MediaType.ToString() == "multipart/form-data") { var providerMulti = Request.Content.ReadAsMultipartAsync(); providerMulti.Wait(); var resu

我有一个API(Asp.Net,用C#编写),它接收一个POST请求,请求是多部分/表单数据。我处理请求的代码如下:

if (request.Content.Headers.ContentType.MediaType.ToString() == "multipart/form-data")
{
    var providerMulti = Request.Content.ReadAsMultipartAsync();
    providerMulti.Wait();
    var result = providerMulti.Result;
} 
调用
Wait()
时,我收到以下异常:

提供的“HttpContent”实例无效。它没有一个 带有“边界”的“多部分”内容类型标头 参数。\r\n参数名称:内容


我不明白。

这真的太晚了,但为了方便人们寻找答案,“多部分内容类型也需要指定一个边界值”,但根据您的if条件,它看起来像是自定义构造的内容类型。下面是Postman
content-type构建的示例内容类型:多部分/表单数据;边界=----WebKitFormBoundaryQSVEr5LUBQLvkqQg
。注意这里的
边界
属性。这就是ASP所抱怨的。我从这个页面得到了提示,相关的线程带有完全相同的错误文本。你是否在客户端使用POSTMAN工具(一个Google Chrome扩展/应用程序)发送POST请求?如果您使用postman客户端工具向您的服务发送请求,则显式地将
内容类型设置为
多部分/表单数据
,这会使请求出错。只是避免按照建议显式设置内容类型。只要让我知道,如果这解决了你的问题,那么我会把我的评论转换成一个答案。