将MIME多部分内容发布到Web Api 2

时间:2015-02-04 14:40:01

标签: asp.net http asp.net-web-api asp.net-web-api2 mime

我无法将multipart/form-data请求发布到我的网络Api 2。

HTTP请求:

POST /api/v1/software/947ee15c-0117-47d2-c567-a435010d18f3/file HTTP/1.1
Host: localhost:4022
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept: application/json
Cache-Control: no-cache
Postman-Token: 7aca3e0b-cc82-7ced-b419-5b1cff9462a8

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="code.png"
Content-Type: image/png


----WebKitFormBoundary7MA4YWxkTrZu0gW

控制器操作:

[Route("{id:Guid}/file")]
public IHttpActionResult PostFile()
{
    if (Request.Content.IsMimeMultipartContent())
    {
        // Upload the file!
    }
    else
    {
        return BadRequest("Unsupported media type");
    }
}

该操作始终以错误请求响应。

Request.Content.IsMimeMultipartContent()总是假的。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我使用以下Accept标头值修复了问题:

text/html,image/png,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8