MessagePack est un format de sérialisation binaire efficace. Il vous permet d'échanger des données entre plusieurs langues comme JSON. Mais c'est plus rapide et plus petit. Les petits entiers sont codés en un seul octet, et les cordes courtes typiques ne nécessitent qu'un octet supplémentaire en plus des cordes elles-mêmes.
Fournit des méthodes d'extension pour System.net.http.httpclient et System.net.http.httpContent qui effectuent une sérialisation et une désérialisation automatique à l'aide de MessagePack.
Ce package dépend en fait de Microsoft.Net.Http et étend les fonctionnalités HttpClient avec MessagePack que vous auriez probablement besoin de parler à un service RESTful tel que l'API Web ASP.NET. Le package fonctionne dans l'espace de noms System.Net.Http et ajoute des méthodes d'extension pratiques à HttpClient et HttpContent .
Ainsi, par exemple:
using ( var client = new HttpClient ( ) )
{
var product = await client . GetFromMessagePackAsync < Product > ( "http://localhost/api/products/1" ) ;
}ou
using ( var client = new HttpClient ( ) )
{
var response = await _client . GetAsync ( "http://localhost/api/products/1" ) ;
response . EnsureSuccessStatusCode ( ) ;
var product = await response . Content . ReadFromMessagePackAsync < Product > ( ) ;
}ou
using ( var client = new HttpClient ( ) )
{
var request = new HttpRequestMessage ( HttpMethod . Post , "http://localhost/api/products/1" ) ;
request . Content = MessagePackContent . Create ( new Product ( ) ) ;
var response = await _client . SendAsync ( request ) ;
response . EnsureSuccessStatusCode ( ) ;
} Si vous essayez d'utiliser simplement Microsoft.Net.Http , la méthode GetFromMessagePackAsync ne serait pas disponible pour vous, et vous ne pourriez lire le contenu que des données brutes telles que les octets ou la chaîne, et que vous devez faire le sérialisation / désérialiser vous-même.
Vous obtenez également des méthodes d'extension à remettre / publier au service au format MessagePack sans avoir à le faire vous-même:
await client . PutAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ;
await client . PostAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ; Ce package ajoute également MessagePackMediaTypeFormatter Class pour la mise en forme de demandes et de réponses HttpClient :
using ( var client = new HttpClient ( ) )
{
var formatter = new MessagePackMediaTypeFormatter ( ) ;
var request = new SearchProductRequest { Name = 'iphone' , OrderBy = 'id' } ;
var content = new ObjectContent < SearchProductRequest > ( request , formatter ) ;
var response = await client . PostAsync ( "http://localhost/api/products:search" , content ) ;
var products = await response . Content . ReadAsAsync < Product [ ] > ( new [ ] { formatter } ) ;
}dotnet add package Byndyusoft.Net.Http.MessagePackPour contribuer, vous devrez configurer votre environnement local, voir les conditions préalables. Pour le guide de contribution et de flux de travail, voir le cycle de vie du développement des packages.
Un aperçu détaillé de la façon de contribuer peut être trouvé dans le guide de contribution.
Assurez-vous que vous avez installé toutes les conditions suivantes sur votre machine de développement:
srctestsmaster du projet