如何在 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());

 

代碼我就不講了,看的懂的人看!看不懂的也沒辦法。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM