メッセージパックは、効率的なバイナリシリアル化形式です。 JSONなどの複数の言語でデータを交換できます。しかし、それはより速く、より小さくなっています。小さな整数は単一のバイトにエンコードされ、典型的な短い文字列は、文字列自体に加えて1つの追加バイトのみを必要とします。
system.net.http.httpclientおよびsystem.net.http.httpcontentの拡張メソッドを提供します。
このパッケージは実際にはMicrosoft.Net.Httpに依存し、ASP.NET Web APIなどのRESTFULサービスと話す必要があるMessagePack機能を備えたHttpClientを拡張します。パッケージはSystem.Net.Httpの名前空間で動作し、 HttpClientおよびHttpContentに便利な拡張メソッドを追加します。
したがって、例:
using ( var client = new HttpClient ( ) )
{
var product = await client . GetFromMessagePackAsync < Product > ( "http://localhost/api/products/1" ) ;
}または
using ( var client = new HttpClient ( ) )
{
var response = await _client . GetAsync ( "http://localhost/api/products/1" ) ;
response . EnsureSuccessStatusCode ( ) ;
var product = await response . Content . ReadFromMessagePackAsync < Product > ( ) ;
}または
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 ( ) ;
} Microsoft.Net.Httpを使用しようとした場合、 GetFromMessagePackAsyncメソッドは利用できず、バイトや文字列などの生データとしてコンテンツを読み取ることができ、シリアル化 /除去を実行する必要があります。
また、自分でそれを行うことなく、 MessagePack形式でサービスに戻す /投稿するための拡張メソッドを取得します。
await client . PutAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ;
await client . PostAsMessagePackAsync ( "http://localhost/api/products/1" , product ) ;このパッケージには、 HttpClientリクエストと応答をフォーマットするためのMessagePackMediaTypeFormatterクラスも追加されます。
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.MessagePack貢献するには、地元の環境をセットアップする必要があります。前提条件を確認してください。貢献およびワークフローガイドについては、パッケージ開発ライフサイクルを参照してください。
貢献方法の詳細な概要は、寄稿ガイドに記載されています。
開発マシンに次のすべての前提条件をインストールしていることを確認してください。
srcにパッケージロジックを実装しますtestsでユニットテストを追加または追加または追加するmasterブランチをターゲットにします