无法通过Swagger下载文档

时间:2018-08-08 04:40:21

标签: c# web swagger downloading

我已经实现了下载文件API,并且正在尝试在Swagger中对其进行测试。 Swagger返回下载文件链接,但是如果我从该链接下载文档,则文件无效。而且此大小超出了应有的大小(例如,通过Swagger下载的图像重量为10 KB,重量为18 KB)。同时,该文件已正确显示在浏览器的网络预览中,并且如果我仅通过API方法链接下载该文件(不使用Swagger),那么它也可以正确下载。告诉我Swagger我在做什么错了吗?

我用于下载文件的代码:

public static class HttpHelper
{
    public static HttpResponseMessage DocumentFileInfoModelToHttpResponseMessage(DocumentFileInfoModel model)
    {
        var message = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(model.Content)
        };

        message.Content.Headers.ContentDisposition =
            new ContentDispositionHeaderValue("attachment") {FileName = model.Name};
        message.Content.Headers.ContentType = new MediaTypeHeaderValue(model.ContentType);
        message.Content.Headers.ContentLength = model.Content.LongLength;

        return message;
    }
}

    [HttpGet]
    [AllowAnonymous]
    [SwaggerOperation(Tags = new[] {Tag})]
    public async Task<IHttpActionResult> DownloadDocument(CancellationToken cancellationToken,
        [FromUri] DocumentType documentType, [FromUri] string name = null)
    {
        var model = new DownloadDocumentModel
        {
            DocumentType = documentType,
            DocumentName = name
        };

        var result = GetDocumentFileInfo(model);

        return ResponseMessage(HttpHelper.DocumentFileInfoModelToHttpResponseMessage(result));
    }

0 个答案:

没有答案