使用邮递员接受 zip 文件
Posted
技术标签:
【中文标题】使用邮递员接受 zip 文件【英文标题】:Accept zip file using postman 【发布时间】:2017-02-08 05:48:58 【问题描述】:我在 .Net Core 应用程序中创建了 api 项目。我还创建了接受HttpRequestMessage
作为参数的方法。现在我正在尝试使用 Postman
调用我的 api 方法,其中包含文件作为正文参数,但我的 api 方法没有调用。
这里是代码
[Route("api/[controller]")]
public class ValuesController : Controller
[HttpPost]
public HttpResponseMessage PostFiles()
HttpResponseMessage result = null;
var httpRequest = HttpContext.Request;
return result;
这里是Postman
请求数据
POST /api/values/PostFiles HTTP/1.1
主机:本地主机:64226 内容类型:multipart/form-data;边界=----WebKitFormBoundary7MA4YWxkTrZu0gW 缓存控制:无缓存 邮递员令牌:6adcc652-a4ab-3714-cc5e-770bd214ac7a
------WebKitFormBoundary7MA4YWxkTrZu0gW 内容处置:表单数据;名称="数据";文件名="" 内容类型:
------WebKitFormBoundary7MA4YWxkTrZu0gW--
这是我使用邮递员调用 api 的屏幕截图。
以文件为参数的请求正文
我有什么遗漏的吗?
你能帮我用 Postman 接受文件作为参数来调用我的 web api 吗?
【问题讨论】:
【参考方案1】:我认为您的路线有问题。试试这个:
public class ValuesController : Controller
[Route("api/values/postfiles")]
[HttpPost]
public HttpResponseMessage PostFiles()
HttpResponseMessage result = null;
var files = Request.Form.Files;
return result;
然后尝试通过http://localhost:yourport/api/values/postfiles 访问 API。
在您的端口号中替换“yourport”。
如果文件可用,您将在“fileStream”中获取该文件。
【讨论】:
[RoutePrefix("api") 属性缺少指令或程序集。我如何在 .Net Core api 项目中获得它?还有要引用哪个命名空间的“HttpContext.Current.Request.Files”?谢谢 对不起,core中确实没有RoutePrefixAttribute。因此,在控制器上应用 [Route] 属性现在将充当路由前缀。我已经编辑了答案。 另外,将 Microsoft.AspNetCore.Http 用于 HttpContext。 仍然无法正常工作。无法使用 Postman 调用 post 方法。 现在它调用我的方法但无法遍历 HttpContext.Current.Server.MapPath ?如何在 .Net Core 应用程序中使用 HttpContext.Current.Server.MapPath ?【参考方案2】:在 ASP.NET Core 应用程序中使用 IHostingEnvironment。然后就可以调用 ContentRootPath 和 WebRootPath
【讨论】:
以上是关于使用邮递员接受 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章
android 改造后注销请求给出错误 406 不可接受:用户未登录。...在邮递员 api 上工作正常