Ce package ajoute la prise en charge des tampons de protocole de formatage et de négociation de contenu à System.net.http
Les tampons de protocole sont le mécanisme extensible de Google, neutre, neutre et neutre, pour sérialiser les données structurées - pensez au XML, mais plus petit, plus rapide et plus simple.
Byndyusoft.Net.Http.Formatting.ProtoBuf dépend en fait de Microsoft.Net.Http , et étend le HttpClient avec des fonctionnalités Protocol Buffers que vous auriez probablement besoin de parler à un service reposant tel que ASP.NET Web API.
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())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/protobuf"));
var response = await client.GetAsync("http://localhost/api/products/1");
response.EnsureSuccessStatusCode();
var product = await response.Content.ReadAsAsync<ProductInfo>(new[]
{
new ProtoBufMediaTypeFormatter()
});
}
Si vous essayez d'utiliser simplement Microsoft.Net.Http , la méthode ReadAsAsync ne serait pas disponible pour vous, et vous ne pourriez lire le contenu que des données brutes telles que des octets ou des chaînes, et que vous devez faire le sérialisation / désérialiser vous-même.
Vous obtenez également des méthodes d'extension pour remettre / publier le service au format ProtoBuf sans avoir à le faire vous-même:
// Save the ProductInfo model back to the API service
await client.PutAsProtoBufAsync("http://localhost/api/products/1", product);
await client.PostAsProtoBufAsync("http://localhost/api/products/1", product);
dotnet add package Byndyusoft.Net.Http.Formatting.ProtoBufPour 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