แพ็คเกจนี้เพิ่มการสนับสนุนสำหรับการจัดรูปแบบ MessagePack และการเจรจาต่อรองเนื้อหาไปยัง System.net.http
MessagePack เป็นรูปแบบการทำให้เป็นอนุกรมไบนารีที่มีประสิทธิภาพ ช่วยให้คุณแลกเปลี่ยนข้อมูลระหว่างหลายภาษาเช่น JSON แต่มันเร็วขึ้นและเล็กลง จำนวนเต็มขนาดเล็กถูกเข้ารหัสเป็นไบต์เดียวและสตริงสั้น ๆ ทั่วไปต้องการไบต์พิเศษเพียงหนึ่งไบต์นอกเหนือจากสตริงด้วยตัวเอง
Byndyusoft.Net.Http.Formatting.MessagePack จริง ๆ แล้วขึ้นอยู่กับ Microsoft.Net.Http และขยาย HttpClient ด้วยคุณสมบัติ MessagePack ที่คุณอาจต้องพูดคุยกับบริการที่พักผ่อนเช่น 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 จะไม่สามารถใช้ได้กับคุณและคุณจะสามารถอ่านเนื้อหาเป็นข้อมูลดิบเช่นไบต์หรือสตริงและต้องทำ serializing / de-serializing ตัวเอง
นอกจากนี้คุณยังได้รับวิธีการขยาย / โพสต์กลับไปที่บริการในรูปแบบ 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 ของโครงการ