当前位置: 首页 > 知识库问答 >
问题:

提供的“HttpContent”实例无效。它没有带有“boundary”参数的“multipart”内容类型标头

袁开宇
2023-03-14

我正在编写一个web api,它有一个post方法来接受从UI上传的文件。

public async Task<List<string>> PostAsync()
    {

        if (Request.Content.IsMimeMultipartContent("form-data"))
        {
            string uploadPath = HttpContext.Current.Server.MapPath("~/uploads");

            var streamProvider = new MyStreamProvider(uploadPath);

            await Request.Content.ReadAsMultipartAsync(streamProvider);

            return streamProvider.FileData
                .Select(file => new FileInfo(file.LocalFileName))
                .Select(fi => "File uploaded as " + fi.FullName + " (" + fi.Length + " bytes)")
                .ToList();
        }
        else
        {
            HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid Request!");
            throw new HttpResponseException(response);
        }
    }

然后我通过邮递员向上面的行动发出请求。我将content-type头设置为multipart/form-data,但在操作执行期间发生错误。以下是错误消息正文:

“提供的'HttpContent'实例无效。它没有带有'boundary'参数的'multipart'内容类型标头。\r\n参数名称:Content”

有人能帮我吗?

共有1个答案

宁欣怿
2023-03-14

您正在查看response头,它是json格式的,这对您来说是可以的。

您真正的问题是邮递员请求,所以只需从请求头中删除'Content-type:multipart/form-data'条目。上传一个文件作为表单数据并发送请求就足够了。

Postman知道同时设置内容类型和边界,因为您只设置了内容类型

 类似资料: