在Web Api中集成protobuf
2018-06-22 07:43:26来源:未知 阅读 ()
-
安装WebApiContrib.Formatting.ProtoBuf
- Install-Package WebApiContrib.Formatting.ProtoBuf
-
注册ProtoBufFormatter
-
public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Formatters.Add(new ProtoBufFormatter()); // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } }
-
-
设置DTO
- 注意这里的Order是必须的
-
[DataContract] public class Item { [DataMember(Order = 1)] public int Id { get; set; } [DataMember(Order = 2)] public string Name { get; set; } [DataMember(Order = 3)] public long Value { get; set; } }
-
客户端调用
static void Main(string[] args) { var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/x-protobuf")); var response = httpClient.GetAsync("http://localhost:60339/api/Default/GetItem").Result; //把 ProtoBuf Stream 反序列化成 集合 var obj = (RuntimeTypeModel.Default).Deserialize(response.Content.ReadAsStreamAsync().Result, null, typeof(List<Item>)) as List<Item>; Console.WriteLine(obj.Count); //设置请求头 var content = new ObjectContent<List<Item>>(obj, new ProtoBufFormatter()); content.Headers.ContentType = new MediaTypeHeaderValue("application/x-protobuf"); var postResponse1= httpClient.PostAsync("http://localhost:60339/api/Default/PostItem", content).Result; var postResult = postResponse1.Content.ReadAsStreamAsync().Result; var intValue = (RuntimeTypeModel.Default).Deserialize(postResult, null, typeof(int)); Console.WriteLine(intValue); Console.ReadKey(); }
使用Fiddler发送Accept 分别为Json,Xml,Protobuf三种格式来请求数据
https://github.com/xlb378917466/WebApi_protobuf
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET Core集成微信登录 2020-02-17
- ASP.NET使用WebService实现天气预报功能 2020-01-20
- 浅谈ASP.Net Core WebApi几种版本控制对比 2019-12-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash