API Web untuk menerima array byte

pemrograman


Saya mendapatkan kesalahan HTTP 415 Jenis Media Tidak Didukung di HttpResponseMessage.
Bagaimana cara agar kode sisi server berfungsi?

HTTPClient digunakan untuk memposting data array byte sebagai berikut…

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

byte[] Data=byte baru { 0x00, 0x01, 0x02… };

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

if(r.IssuccessStatusCode) mengembalikan nilai true;
kembali salah;
}

Sisi Server (MVC/Razor) menerima array byte sebagai berikut

[HttpPost(“{Filename}”)]

Tugas async publik Posting([FromBody] string Nama file)
{
MemoryStream ms=new MemoryStream((int)Request.Body.Length);
menunggu Permintaan.Body.CopyToAsync(ms);

byte[] b=ms.ToArray(); ms.close();
File.WriteAllBytesAsync(“Data.bin”, b);
kembali b.Panjang;
}

Apa yang saya coba:

Dikompilasi di bawah Visual Studio 2017 yang berjalan pada workstation Windows 10 Pro

Solusi 1

Anda dapat melakukannya sesederhana ini

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

Web API menangani array byte sebagai parameter input dengan cukup baik

コメント

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