首页 > Windows开发 > 详细

如何在 webApi 当中接收 Gzip 压缩或者加密后的 请求消息内容!

时间:2015-01-16 16:27:39      阅读:381      评论:0      收藏:0      [点我收藏+]

今天在上班的时候遇到个问题,移动端要求我们用GZIP加密。当时一想着多简单,但是在做的时候发现个问题。

就是移动端Post到 服务端的数据也是经过 Gzip的,并不是单一的像网站那样只针对网页进行 压缩。

下面是我的处理办法:

重写 :DelegatingHandler抽象类

protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
{
Stream stream = request.Content.ReadAsStreamAsync().Result;
Encoding encoding = Encoding.UTF8;
stream.Position = 0;


request.Content = new StreamContent(new GZipStream(stream, CompressionMode.Decompress));
request.Content.Headers.Remove("Content-Type");
request.Content.Headers.Add("Content-encoding", "gzip");
request.Content.Headers.Add("Content-Type", "application/json;charset=UTF-8");

return base.SendAsync(request, cancellationToken);
}

 

//最后将上面写好的消息拦截类 添加到MessageHandlers里面完事

GlobalConfiguration.Configuration.MessageHandlers.Add(new  MessageHandler());

 

代码我就不讲了,看的懂的人看!看不懂的也没办法。。。

如何在 webApi 当中接收 Gzip 压缩或者加密后的 请求消息内容!

原文:http://www.cnblogs.com/harryliu/p/4228925.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!