我们有一个xamarin移动应用程序请求并向Asp.net Boilerplate网络后端发送大量数据。
使用gzip压缩响应,我们也想压缩Post请求的内容。
为此,我们压缩post方法参数的json序列化如下:
byte[] jsonBytes = Encoding.UTF8.GetBytes(json);
MemoryStream ms = new MemoryStream();
using (GZipStream gzipStream = new GZipStream(ms, CompressionMode.Compress, true))
{
gzipStream.Write(jsonBytes, 0, jsonBytes.Length);
}
ms.Position = 0;
StreamContent content = new StreamContent(ms);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
content.Headers.ContentEncoding.Add("gzip");
作为对Post的回应,我们收到错误500,其中Abp验证错误有内容。
我们如何配置或覆盖服务器以接受gzip内容?
我们已尝试使用一个模块在Context_BeginRequest中添加一个过滤器来解压缩内容,如果它是gzip有以下内容但没有结果。 (应用过滤器,但没有帮助)
string requestEncoding = ctx.Request.Headers["Content-encoding"];
if (requestEncoding != null && requestEncoding == "gzip")
{
app.Request.Filter =
new System.IO.Compression.GZipStream(app.Request.Filter,
CompressionMode.Decompress);
}
由于