尝试拦截 POST 请求时出现 415 UnsupportedMediaType
415 UnsupportedMediaType when trying to intercept a POST request
我的 Feed 提供商通过 POST 请求向我的服务器发送一个 .gz 文件(zip 文件)。
我正在尝试实现将拦截 POST 请求并解压缩文件以打开其中文件的 .NET 代码。
我只是想拦截 POST 请求并解压缩内容:
namespace app.Controllers
{
[Route("")]
public class FeedController : Controller
{
[HttpPost]
public string Post([FromBody] string content)
{
return content;
}
}
}
它 returns 415 UnsupportedMediaType。
如何拦截POST请求是一个ZIP文件,如何解压到return里面的文件?
谢谢。
编辑:
[HttpPost]
[Consumes("multipart/form-data")]
public IActionResult Post(IFormFile file)
{
if (file == null)
return BadRequest();
try
{
using (var zip = new ZipArchive(file.OpenReadStream()))
{
// do stuff with the zip file
}
}
catch
{
return BadRequest();
}
return Ok();
}
您是否缺少 ContentType header? Check out this case 了解更多详细信息。
部分问题已解决。
要读取由 POST 请求发送的 .gz 文件,您应该这样做:
[HttpPost]
[Consumes("application/gzip")]
public IActionResult Post(IFormFile file)
{
WebClient Client = new WebClient();
Client.DownloadFile("http://xxxxxx.com/feed.gz", "C:\temp\mygzipfile.gz");
// do something with this file
return Ok();
}
我的 Feed 提供商通过 POST 请求向我的服务器发送一个 .gz 文件(zip 文件)。
我正在尝试实现将拦截 POST 请求并解压缩文件以打开其中文件的 .NET 代码。
我只是想拦截 POST 请求并解压缩内容:
namespace app.Controllers
{
[Route("")]
public class FeedController : Controller
{
[HttpPost]
public string Post([FromBody] string content)
{
return content;
}
}
}
它 returns 415 UnsupportedMediaType。
如何拦截POST请求是一个ZIP文件,如何解压到return里面的文件?
谢谢。
编辑:
[HttpPost]
[Consumes("multipart/form-data")]
public IActionResult Post(IFormFile file)
{
if (file == null)
return BadRequest();
try
{
using (var zip = new ZipArchive(file.OpenReadStream()))
{
// do stuff with the zip file
}
}
catch
{
return BadRequest();
}
return Ok();
}
您是否缺少 ContentType header? Check out this case 了解更多详细信息。
部分问题已解决。
要读取由 POST 请求发送的 .gz 文件,您应该这样做:
[HttpPost]
[Consumes("application/gzip")]
public IActionResult Post(IFormFile file)
{
WebClient Client = new WebClient();
Client.DownloadFile("http://xxxxxx.com/feed.gz", "C:\temp\mygzipfile.gz");
// do something with this file
return Ok();
}