Comment obtenir le corps de la demande brute à partir de l’object Request.Content à l’aide du sharepoint terminaison .net 4 api

J’essaie de capturer les données de demande brutes pour la responsabilité et je veux extraire le contenu du corps de la demande de l’object Request.

J’ai vu des suggestions faire un Request.InputStream, mais cette méthode n’est pas disponible sur l’object Request.

Une idée de comment obtenir une représentation sous forme de chaîne du corps Request.Content?

Regarder variable

Vous pouvez obtenir les données brutes en appelant ReadAsSsortingngAsAsync sur la propriété Request.Content .

 ssortingng result = await Request.Content.ReadAsSsortingngAsync(); 

Il existe diverses surcharges si vous le souhaitez dans un octet ou dans un stream. Comme ce sont des méthodes asynchrones, vous devez vous assurer que votre contrôleur est asynchrone:

 public async Task GetSomething() { var rawMessage = await Request.Content.ReadAsSsortingngAsync(); // ... return Ok(); } 

Dans votre commentaire sur la réponse de @ Kenneth, vous dites que ReadAsSsortingngAsync() renvoie une chaîne vide.

C’est parce que vous (ou quelque chose comme le classeur de modèle) avez déjà lu le contenu. La position du stream interne dans Request.Content est donc à la fin.

Voici ce que vous pouvez faire:

 public static ssortingng RequestBody() { var bodyStream = new StreamReader(HttpContext.Current.Request.InputStream); bodyStream.BaseStream.Seek(0, SeekOrigin.Begin); var bodyText = bodyStream.ReadToEnd(); return bodyText; }