.net Core Read Body From Request

4 min read Jun 03, 2024
.net Core Read Body From Request

Lire le corps d'une requête dans ASP.NET Core

ASP.NET Core offre plusieurs méthodes pour lire le corps d'une requête entrante. Le choix de la méthode dépendra du type de données que vous attendez et de la manière dont vous souhaitez les traiter.

Lire le corps en tant que chaîne de caractères

La méthode la plus simple pour lire le corps d'une requête consiste à le convertir en chaîne de caractères.

[HttpPost]
public async Task Post([FromBody] string body)
{
    // Traitez le corps de la requête
    Console.WriteLine(body);

    return Ok();
}

Dans cet exemple, l'attribut [FromBody] indique à ASP.NET Core d'extraire le corps de la requête et de le lier à la variable body. Vous pouvez ensuite utiliser la variable body pour accéder au contenu du corps de la requête.

Lire le corps en tant que flux

Si vous avez besoin de lire le corps de la requête en tant que flux de données, vous pouvez utiliser la propriété Request.Body du contexte de la requête.

[HttpPost]
public async Task Post()
{
    using var reader = new StreamReader(Request.Body);
    string body = await reader.ReadToEndAsync();

    // Traitez le corps de la requête
    Console.WriteLine(body);

    return Ok();
}

Dans cet exemple, nous créons un lecteur de flux à partir de la propriété Request.Body. Nous pouvons ensuite utiliser le lecteur pour lire le corps de la requête en tant que chaîne de caractères.

Lire le corps en tant qu'objet

Vous pouvez également utiliser ASP.NET Core pour lire le corps de la requête et le désérialiser en objet.

[HttpPost]
public async Task Post([FromBody] MyObject data)
{
    // Traitez les données de l'objet
    Console.WriteLine(data.Name);

    return Ok();
}

public class MyObject
{
    public string Name { get; set; }
}

Dans cet exemple, nous définissons une classe MyObject qui représente les données que nous attendons dans le corps de la requête. L'attribut [FromBody] indique à ASP.NET Core de désérialiser le corps de la requête en un objet MyObject. Vous pouvez ensuite utiliser les propriétés de l'objet pour accéder aux données.

Conclusion

ASP.NET Core fournit une variété de méthodes pour lire le corps d'une requête. La méthode que vous choisissez dépendra du type de données que vous attendez et de la manière dont vous souhaitez les traiter.

Important: N'oubliez pas que le corps de la requête est un flux de données et que vous devez le lire une seule fois. Si vous avez besoin d'accéder au corps de la requête plusieurs fois, vous devez le stocker dans une variable ou un tampon intermédiaire.

Featured Posts