J'ai une application ASP.NET avec le code derrière une page servant une requête POST en plusieurs parties combinées de 2 parties: JSON et octets de vapeur représentant l'audio. Le corps POST ressemble à ceci:Processus multipart (JSON + flux d'octets) Post demande en C#
--8f2a0a01-2114-42ca-a176-51badb488534
Content-Type: application/json; charset=utf-8
Content-Disposition: form-data; name=jsonName
{JSON}
--8f2a0a01-2114-42ca-a176-51badb488534
Content-Type: audio/wav
Content-Disposition: form-data; name=audioName
(byte stream)
--8f2a0a01-2114-42ca-a176-51badb488534
Mon problème est de récupérer le flux d'octets à partir de la deuxième partie (audio). J'ai essayé plusieurs techniques et n'importe quelle API que j'utilise me renvoie ce flux d'octets sous forme de chaîne et après cela quand je le sérialise pour classer le fichier ne peut pas être joué. Par exemple (mais pas seulement):
foreach (string key in HttpContext.Current.Request.Form.AllKeys)
{
var multiPartValue = HttpContext.Current.Request.Form[key];
//DO SOMETHING
}
Je conclus que la transformation de la chaîne corrompt le flux d'octets audio d'origine et je dois récupérer le flux d'octets d'origine comme cela est (peut-être byte []) sans aucune transformation. Toute suggestion sur la façon de mettre en œuvre ce sera très apprécié
Je ne suis pas dans le contexte du contrôleur Web API, mais dans la classe qui hérite de System.Web.UI.Page. Pourriez-vous ajuster votre suggestion à cette contrainte? –
J'ai essayé la solution proposée pour les formulaires Web. Je reçois Request.Files.Count = 0. Je ne pense pas que le flux d'octets ait été uploadé en tant que fichier mais plutôt comme un flux d'octets bruts poussé comme il est en requête POST. S'il s'agissait d'un fichier je m'attendais à 'filename = SOME_FILE' à la fin de l'en-tête Content-Disposition et il n'y en a aucun –
@MikkiMaus pouvez-vous poster le code côté client? –