gpt4 book ai didi

c# - asp.net中如何发送压缩数据

转载 作者:行者123 更新时间:2023-11-30 22:31:15 24 4
gpt4 key购买 nike

我用几个 aspx 创建了一个 ASP.net 应用程序。其中一些像 API 链接一样使用。这些 API 页面由传递一些 header 的 J2ME 应用程序使用。我正在检查这些 header ,特别是“接受编码”,以便我的页面可以发送压缩内容。

以下代码显示了其中一个 API 页面的示例代码。

byte[] buffer;
int bufferLength;

protected void Page_Load(object sender, EventArgs e)
{
bufferLength = Request.ContentLength;
buffer = new byte[bufferLength];
buffer = Request.BinaryRead(bufferLength);
string s = Encoding.ASCII.GetString(buffer);

bool needEncrypted = (Request.Headers["Accept-Encoding"] != null);

if (!string.IsNullOrEmpty(s))
{
JavaScriptSerializer ser = new JavaScriptSerializer();
CRequestQuestParameter QuestPara = ser.Deserialize<CRequestQuestParameter>(s);
CUtil utilFun = new CUtil(WebConfigurationManager.ConnectionStrings["TheConnectionString"].ToString());

CResponseQuestionSets res = new CResponseQuestionSets();


//No error setting
res.ErrorCode = -1;
res.ErrorMessage = "";
res.IsError = false;

//Return data
res.ResponseData = utilFun.GetQuestionSet(QuestPara);
if (res.ResponseData != null) {
res.ErrorCode = -1;
res.ErrorMessage = "";
res.IsError = false;

}
else
{
res.ErrorCode = 102;
res.ErrorMessage = "User does not exists";
res.IsError = true;

}



if (needEncrypted)
{
HttpContext context = HttpContext.Current;
context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
}

Response.ContentType = "application/json charset=utf-8";
Response.Write(ser.Serialize(res));
Response.End();

}
}

这里的问题是 J2ME 应用程序没有接收到压缩后的数据,但确实获得了 header “Content-Encoding”。

谁能帮我解决这个问题?

最佳答案

您不需要在代码中进行 GZIP 编码。

这可以通过在 IIS 6 中正确配置您的站点来完全解决。和 IIS 7 .

关于c# - asp.net中如何发送压缩数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9327805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com