【发布时间】:2020-10-06 12:36:12
【问题描述】:
我正在尝试为我的 Web Api 控制器 (ASP.NET Core 3) 上传一个简单的字节数组
using var client = new HttpClient() { BaseAddress = new Uri("http://someUrl.com/") };
var body = new ByteArrayContent(new byte[] {1, 2, 3});
var result = await client.PostAsync("api/somecontroller/content?someField=someData", body);
控制器
[HttpPost("content")]
public IActionResult Upload([FromBody]byte[] documentData, [FromQuery] string someField)
{
...
return Ok();
}
但这给了我错误415 Unsupported media type。为什么 ?我需要在 url 中添加一些额外的数据,但我认为这不是问题所在。
【问题讨论】:
-
试试这个:在接收端,删除主体参数并在请求主体上使用流:
MemoryStream stream =new MemoryStream((int)Request.Body.Length); await Request.Body.CopyToAsync(stream); byte[] byteArray = stream.ToArray(); -
另外,您可以尝试在此答案中设置内容标题:stackoverflow.com/a/23884972/479251
标签: c# asp.net-core