【发布时间】:2021-10-20 08:31:45
【问题描述】:
我无法在 API 控制器上开发 C# (.Net 5) 方法,该控制器可以管理具有“multipart/form-data;”的请求;边界=边界'
我无法在客户端更改请求,我只能修改我的后端以适应它。
请求指定'Content-Type: multipart/form-data;边界=边界',它在正文中有一条我需要提取的 json 消息。
在请求的正文中,消息是这样的:
--boundary
Content-Disposition: form-data; name="ZZZZZZZZZZ"
Content-Type: application/json
Content-Length: 474
{
//a well formed json
}
--boundary--
我可以使用以下代码:string dataMessage = new StreamReader(Request.Body).ReadToEndAsync().Result;
然后我可以手动解析该字符串以使用 IndexOf 和 Substring 仅提取 json 部分,然后使用 JsonConvert 将其转换为对象。
我想知道 .Net 上是否有一些选项可以在不手动解析字符串的情况下自动执行此操作。我认为必须有某种方法来解释边界标记并获取直接json数据。但我找不到任何 :( 这让我想到了,因为当使用 webhook.site 测试客户端请求时,它可以毫无问题地解析消息。
我的控制器定义是这样的
[ApiController]
[Route("api/[controller]")]
public class XXXXController : ControllerBase
而且方法是这样的
[HttpPost]
[Route("[action]")]
public IActionResult YYYYYYY()
我已经尝试指定模型绑定来更改行为,但我无法让它工作。
在提问之前我已经搜索过帮助:
- https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-5.0#model-binding-for-http-get-requests
- https://forums.asp.net/t/2162362.aspx?Read+POST+data+in+request+body
- How to get POST data in WebAPI?
- how to read multi part form data in .net web api controller
- ASP.NET MVC. How to create Action method that accepts and multipart/form-data
- 415 Unsupported Media Type when uploading "multipart/form-data" to .Net Core 3.1 API but the file is accessible in middleware method
- ASP.NET Core form POST results in a HTTP 415 Unsupported Media Type response
- ASP.NET How read a multipart form data in Web API?
- How to send multipart/form-data to ASP.NET Core Web API?
- How to set up a Web API controller for multipart/form-data
- Send POST request through WebClient with boundary
- Web API Simplest way to pickup a multipart/form-data response
- How to get Json Post Values with asp.net webapi
- What is the boundary in multipart/form-data?
- C# HTTP POST with Boundary
- How to set MIME type for POST - multipart/form-data in axios?
感谢您的帮助!!
【问题讨论】:
标签: c# controller multipartform-data .net-5 boundary