使用邮递员接受 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 上工作正常

Java - 如何使用邮递员插入数据

我正在尝试从邮递员发送帖子请求,但起初请求被接受,但数据存储为空

如何使用 PHP 检测 zip 炸弹?