MessagePack é um formato de serialização binária eficiente. Permite trocar dados entre vários idiomas como o JSON. Mas é mais rápido e menor. Pequenos números inteiros são codificados em um byte único, e as cordas curtas típicas requerem apenas um byte extra, além das próprias cordas.
Fornece métodos de extensão para system.net.http.httpclient e system.net.http.httpContent que executam serialização e desserialização automáticas usando o MessagePack.
Este pacote realmente depende do Microsoft.Net.Http e estende o HttpClient com os recursos MessagePack que você provavelmente precisaria conversar com um serviço RESTful, como o ASP.NET Web API. O pacote opera no espaço de nome System.Net.Http e adiciona alguns métodos úteis de extensão ao HttpClient e HttpContent .
Por exemplo:
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 ( ) ;
} Se você tentasse usar apenas Microsoft.Net.Http , o método GetFromMessagePackAsync não estaria disponível para você, e você só seria capaz de ler o conteúdo como dados brutos, como bytes ou string, e precisará fazer a serialização / despersão a si mesmo.
Você também obtém métodos de extensão para colocar / postar de volta ao serviço no formato MessagePack sem ter que fazer isso você mesmo:
await client . PutAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ;
await client . PostAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ; Este pacote também adiciona a classe MessagePackMediaTypeFormatter para formatar solicitações e respostas 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.MessagePackPara contribuir, você precisará configurar seu ambiente local, consulte os pré -requisitos. Para o guia de contribuição e fluxo de trabalho, consulte o ciclo de vida do desenvolvimento de pacotes.
Uma visão geral detalhada sobre como contribuir pode ser encontrada no guia contribuinte.
Certifique -se de instalar todos os seguintes pré -requisitos em sua máquina de desenvolvimento:
srctestsmaster do projeto