如何在 webApi 当中接收 Gzip 压缩或者加密后的 请求消息内容!
今天在上班的时候遇到个问题,移动端要求我们用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());
代码我就不讲了,看的懂的人看!看不懂的也没办法。。。
最新文章
- 记lrd的高二上学期第五次调研考试
- jquery easyui tree动态加载子节点
- 《InsideUE4》UObject(一)开篇
- BZOJ4517: [Sdoi2016]排列计数
- python判断文件和目录是否存在
- git(4)如何在windows上安装git
- Codeforces Round #Pi (Div. 2) E. President and Roads 最短路+桥
- 关于Eclipse的工作空间设置默认个数和配置
- partial函数-python学习
- eclipse最有用快捷键整理(转)
- win10系统搭建虚拟机:VMware Workstation Player 12环境+Ubuntu Kylin 16.04 LTS系统
- 解决Maven无法下载fastdfs-client-java依赖,Dependency &#39;org.csource:fastdfs-client-java:1.27-SNAPSHOT&#39; not found.
- .NET技术-2.0. 操作数据库-EF
- nginx代理部署Vue与React项目
- [Android] QPST,解BL锁,刷Recovery,备份系统,root,刷框架.
- 知识点:synchronized 原理分析
- 用RIPv2实现网络区域的互通
- str.index()与str.find()比较
- 基于TINY4412的Andorid开发-------简单的LED灯控制
- Mysql Workbench 连接CentOs MySQL
热门文章
- Median of Two Sorted 求两个有序数组的中位数
- 常用wxPython事件描述
- Android UI目录
- C / C++算法学习笔记(8)-SHELL排序
- 国内外DNS服务器地址列表
- HTML5开发 BUG解决
- VS2015 企业版不支持 JavaScript 语法高亮、智能提醒
- MySQL导入sql 文件的5大步骤
- .NET 3.5(5) - LINQ查询操作符之Select、Where、OrderBy、OrderByDescending
- web Form 表单method=";get"; method=";post"; 区别