API Web pour recevoir un tableau d’octets

la programmation

[ad_1]

J’obtiens une erreur HTTP 415 Type de média non pris en charge dans le message HttpResponseMessage.
Comment faire fonctionner les codes côté serveur ?

HTTPClient est utilisé pour publier des données de tableau d’octets comme suit…

en utilisant (HttpClient c = nouveau HttpClient ()
{
c.DefaultRequestHeader.Accept.Add(new MediaTypeWithQualityHeaderValue(“application/octet-stream)

octet[] Données=nouvel octet { 0x00, 0x01, 0x02… } ;

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

if(r.IssuccessStatusCode) renvoie vrai ;
renvoie faux ;
}

Côté serveur (MVC/Razor) reçoit le tableau d’octets comme suit

[HttpPost(“{Filename}”)]

tâche asynchrone publique Post([FromBody] chaîne Nom de fichier)
{
MemoryStream ms=nouveau MemoryStream((int)Request.Body.Length);
attendre Request.Body.CopyToAsync(ms);

octet[] b=ms.ToArray(); ms.close();
File.WriteAllBytesAsync(“Data.bin”, b);
retourner b.Longueur;
}

Ce que j’ai essayé :

Compilé sous Visual Studio 2017 fonctionnant sur poste de travail Windows 10 Pro

Solution 1

Vous pouvez le faire aussi simplement que ceci

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

L’API Web gère assez bien le tableau d’octets comme paramètres d’entrée

[ad_2]

コメント

Titre et URL copiés