2
我已经创建了一个ASP.net应用程序与几个aspx。其中一些像API链接一样使用。这些API页面被J2ME应用程序使用,它传递一些头文件。我正在特别检查这些标题“Accept-Encoding”,以便我的页面可以发送压缩内容。如何发送在asp.net中的压缩数据
以下代码显示了其中一个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应用程序不接收数据的压缩,但确实得到头“内容编码”。
任何人都可以帮我解决这个问题吗?
也许如果你在这次调用的开始时移动过滤器,我的意思是在页面init。 – Aristos 2012-02-17 12:21:46
@Aristos:好的,会检查。 – IrfanRaza 2012-02-17 12:24:36