API Web để nhận mảng byte

lập trình


Tôi gặp lỗi HTTP 415 Loại phương tiện không được hỗ trợ trong HttpResponseMessage.
Làm cách nào để mã phía máy chủ hoạt động?

HTTPClient được sử dụng để đăng dữ liệu mảng byte như sau…

sử dụng(HttpClient c=new HttpClient()
{
c.DefaultRequestHeader.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/octet-stream)

byte[] Dữ liệu=byte mới { 0x00, 0x01, 0x02… };

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

if(r.IssuccessStatusCode) trả về true;
trả về sai;
}

Phía máy chủ (MVC/Razor) nhận mảng byte như sau

[HttpPost(“{Filename}”)]

công khai không đồng bộ Nhiệm vụ Bài viết([FromBody] Tên tệp chuỗi)
{
MemoryStream ms=New MemoryStream((int)Request.Body.Length);
đang chờ Yêu cầu.Body.CopyToAsync (ms);

byte[] b=ms.ToArray(); ms.close();
File.WriteAllBytesAsync(“Data.bin”, b);
trở lại b.Chiều dài;
}

Những gì tôi đã thử:

Biên soạn theo Visual Studio 2017 chạy trên máy trạm Windows 10 Pro

Giải pháp 1

Bạn có thể làm điều đó đơn giản như thế này

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

API Web xử lý mảng byte làm tham số đầu vào khá tốt

コメント

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