[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
{
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
[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]
コメント