码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-01-16 16:29:42      阅读:1918      评论: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)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!