用于接收字节数组的 Web API

编程


我在 HttpResponseMessage 中收到 HTTP 错误 415 不支持的媒体类型。
如何让服务器端代码正常工作?

HTTPClient 用于发布字节数组数据,如下……

使用(HttpClient c = new HttpClient()
{
c.DefaultRequestHeader.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/octet-stream)

字节[] 数据 = 新字节 { 0x00, 0x01, 0x02… };

HttpResponseMessage r=await c.PostAsync(“http://abc.com/api/File/Filename”, new ByteArrayContent(Data);

if(r.IssuccessStatusCode) 返回 true;
返回假;
}

服务器端(MVC/Razor)接收字节数组如下

[HttpPost(“{Filename}”)]

公共异步任务 Post([FromBody] 字符串 文件名)
{
MemoryStream ms=new MemoryStream((int)Request.Body.Length);
等待 Request.Body.CopyToAsync(ms);

字节[] b=ms.ToArray(); ms.close();
File.WriteAllBytesAsync(“Data.bin”, b);
返回b.长度;
}

我尝试过的:

在 Windows 10 Pro 工作站上运行的 Visual Studio 2017 下编译

解决方案1

你可以像这样简单地做到这一点

C#
[HttpPost]
public void Post(byte[] bytes)
{
   //your code
}

Web API 很好地处理字节数组作为输入参数

コメント

タイトルとURLをコピーしました