Этот пакет добавляет поддержку для форматирования сообщений и согласования контента в system.net.http
MessagePack - это эффективный формат бинарной сериализации. Это позволяет обмениваться данными среди нескольких языков, таких как JSON. Но это быстрее и меньше. Небольшие целые числа закодированы в один байт, а типичные короткие строки требуют только одного дополнительного байта в дополнение к самим струнам.
Byndyusoft.Net.Http.Formatting.MessagePack на самом деле зависит от Microsoft.Net.Http и расширяет HttpClient с функциями MessagePack , которые вам, вероятно, потребуется поговорить с сервисом Restful, такими как ASP.Net Web API.
Пакет работает в пространстве имен System.Net.Http и добавляет некоторые удобные методы расширения в HttpClient и HttpContent .
Так, например:
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-msgpack"));
var response = await client.GetAsync("http://localhost/api/products/1");
response.EnsureSuccessStatusCode();
var product = await response.Content.ReadAsAsync<ProductInfo>(new[]
{
new MessagePackMediaTypeFormatter()
});
}
Если вы попытались просто использовать Microsoft.Net.Http , метод ReadAsAsync не был бы для вас доступен, и вы сможете прочитать контент только как необработанные данные, такие как байты или строка, и должны выполнять сериализацию / де-эриализацию.
Вы также получаете методы расширения, чтобы вернуть / отправлять обратно в службу в формате MessagePack , не делая этого самостоятельно:
// Save the ProductInfo model back to the API service
await client.PutAsMessagePackAsync("http://localhost/api/products/1", product);
await client.PostAsMessagePackAsync("http://localhost/api/products/1", product);
dotnet add package Byndyusoft.Net.Http.Formatting.MessagePackЧтобы внести свой вклад, вам нужно будет настроить местную среду, см. Предварительные условия. Руководство для вклада и рабочего процесса см. В жизненном цикле разработки упаковки.
Подробный обзор того, как внести свой вклад, можно найти в Руководстве для участия.
Убедитесь, что вы установили все следующие предпосылки на машине разработки:
srctestsmaster филиал проекта