WebApi.透過Protobuf-net降低傳輸量

WebApi.透過Protobuf-net加速傳輸速度

最近專案遇到下面Request,

         1. 需降低WebAPI傳輸量

         2. 傳跟收兩端都是C#

幸運的發現「黑暗大大-WCF探勘8-使用Protobuf-net序列化」這篇文章,查了後發現也有WebAPI版本,

就是這篇「USING PROTOBUF-NET MEDIA FORMATTER WITH WEB API 2」有詳細說明,並且有「範例程式」,

測試後,可以正常使用,並且有支援中文,不過有趣的是Response時間結果是反過來><!!,

下面說明「使用重點及測試注意事項」。

 

使用重點是:

1. Client端 :

  • Reuest-Header要改為「application/x-protobuf」,如不這樣做,會沒有加速的效果,但一樣會回傳資料
  • 反序列化資料時,要定義格式化的規則為「ProtoBufFormatter」

image

Server端:

  • Model則要定義「ProtoContract」在Class,「ProtoMember」在property,如下圖

image

 

2. 測試注意事項:

使用SOAP UI測試最為方便,因為POSTMAN跟Fiddler測試時,一直無法改變Request-header為「application/x-protobuf」,

記得如下圖做修改,就會看到正確的封包

image

 

測試結果,會發現前面有框框,那部分是中文,放心程式會正常顯示中文

image

 

image

 

Dotblog 的標籤: ,