如何在 c# 中测试我的下载文件 Web API

本文关键字:下载 文件 Web API 我的 测试 | 更新日期: 2023-09-27 18:34:36

我想从网络服务下载文件。 我已经尝试这样做,但我无法在高级 REST 客户端中测试它。 这是我的代码

public static HttpResponseMessage FileAsAttachment(string path, string filename)
        {
            if (File.Exists(path))
            {
                HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
                var stream = new FileStream(path, FileMode.Open);
                result.Content = new StreamContent(stream);
                result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
                result.Content.Headers.ContentDisposition.FileName = filename;
                return result;
            }
            return new HttpResponseMessage(HttpStatusCode.NotFound);
        }

我总是有回应" "$id": "1"消息":"找不到与请求 URI 'http://localhost:36690/api/Data/FileAsAttachment?path=F:''&文件名=claims.jpg'匹配的 HTTP 资源。"消息详细信息":"在控制器'数据'上未找到与名称'文件作为附件'匹配的操作。我的控制器名称是数据

如何在 c# 中测试我的下载文件 Web API

Action method不应该是静态的。当我从您的代码中删除static时,它正在工作。

为什么需要将其声明为静态方法?

请查看以下链接。

链接1链接2

更新:评论后,尝试使用[HttpGet]装饰方法

 [HttpGet]
 public HttpResponseMessage FileAsAttachment(string path, string filename)