我在.Net Core应用程序中创建了api项目。我还创建了接受HttpRequestMessage
作为参数的方法。现在我尝试使用Postman
调用我的api方法,包含file作为body参数,但是我的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
主持人:localhost:64226 内容类型:multipart / form-data;边界= ---- WebKitFormBoundary7MA4YWxkTrZu0gW 缓存控制:无缓存 邮差 - 令牌:6adcc652-a4ab-3714-cc5e-770bd214ac7a
------ WebKitFormBoundary7MA4YWxkTrZu0gW 内容处理:表格数据;命名="数据&#34 ;;文件名="" 内容类型:
------ WebKitFormBoundary7MA4YWxkTrZu0gW -
以下是使用邮递员的api电话的屏幕截图。
使用文件作为参数
请求正文我有什么遗失的吗?
你可以帮我打电话给我的网络API,接受使用邮递员作为参数的文件吗?
答案 0 :(得分:4)
我认为您的路线存在问题。试试这个:
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"中获取该文件。如果文件可用。
答案 1 :(得分:0)
在ASP.NET Core应用程序中使用IHostingEnvironment。然后,您可以调用ContentRootPath和WebRootPath