Asp.net mvc 在MVC Web API中设置导致多个请求的ContentType

Asp.net mvc 在MVC Web API中设置导致多个请求的ContentType,asp.net-mvc,rest,http,Asp.net Mvc,Rest,Http,我在Web API中有一个简单的GetFile方法,它返回一个以二进制形式存储在数据库中的文件。文件可以是图像、视频或录音,因此我根据扩展名设置内容类型: [System.Web.Mvc.HttpGet] public HttpResponseMessage GetFile(Guid Id) { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

我在Web API中有一个简单的GetFile方法,它返回一个以二进制形式存储在数据库中的文件。文件可以是图像、视频或录音,因此我根据扩展名设置内容类型:

    [System.Web.Mvc.HttpGet]
    public HttpResponseMessage GetFile(Guid Id)
    {
        HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

        var file = db.Files.Where<NonConformityFile>(item => item.Id == Id).FirstOrDefault<NonConformityFile>();

        byte[] imgData = file.FileContents;
        MemoryStream ms = new MemoryStream(imgData);
        response.Content = new StreamContent(ms);

        if (file.FileExtension == "png")
            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");
        else if (file.FileExtension == "mp4")
            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("video/mp4");
        else if (file.FileExtension == "caf")
            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("audio/x-caf");
        else
            throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.UnsupportedMediaType, file.FileExtension + " is not a supported file format"));

        return response;
    }

并查看该方法是否运行了两次。我看不到这种行为的逻辑,这导致了我的身份验证出现问题。

进一步调查表明,这实际上可能是Postman REST客户端的问题。在Fiddler和AdvancedRESTClient中重放请求时,我没有发现问题。这太可惜了,因为在我看来邮递员是最好的REST客户。。。
        [System.Web.Mvc.HttpGet]
    public HttpResponseMessage GetFile()
    {
        HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

        response.Content = new StreamContent(new MemoryStream());
        response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");

        return response;
    }