API web para recibir matriz de bytes

programación


Recibo un error HTTP 415 Tipo de medio no admitido en HttpResponseMessage.
¿Cómo hago para que funcionen los códigos del lado del servidor?

HTTPClient se utiliza para publicar datos de matriz de bytes de la siguiente manera…

usando(HttpClient c=nuevo HttpClient()
{
c.DefaultRequestHeader.Accept.Add(new MediaTypeWithQualityHeaderValue(“aplicación/flujo de octeto)

byte[] Datos=nuevo byte { 0x00, 0x01, 0x02… };

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

if(r.IssuccessStatusCode) devuelve verdadero;
falso retorno;
}

El lado del servidor (MVC/Razor) recibe la matriz de bytes de la siguiente manera

[HttpPost(“{Filename}”)]

Tarea pública asíncrona Publicación ([FromBody] cadena nombre de archivo)
{
MemoryStream ms=new MemoryStream((int)Request.Body.Length);
espere Request.Body.CopyToAsync(ms);

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

Lo que he probado:

Compilado en Visual Studio 2017 ejecutándose en una estación de trabajo Windows 10 Pro

Solución 1

Puedes hacerlo tan simple como esto.

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

La API web maneja bastante bien la matriz de bytes como parámetros de entrada

コメント

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