我们成功地从 iTunes autoingest 端点获取了许多报告: https ://reportingitc.apple.com/autoingestion.tft
然而,一些报告,而不是直接在正文中返回数据,而是返回一个 ZIP 文件,每当我们尝试读取响应时,我们都会得到:
GZip 标头中的幻数不正确。确保您传入的是 GZip 流。
响应标头如下所示,指示 zip 文件:
{
内容编码:
内容处置:附件;文件名=O_S_W_XXXXXXXX_20120805.zip
文件名:O_S_W_XXXXXXXX_20120805.zip
传输编码:分块
内容类型:应用程序/a-gzip
日期:2012 年 8 月 29 日星期三 08:54:35 GMT
Set- Cookie:JSESSIONID=XXXXXXXXXXXXXXXX;路径=/
服务器:Apache-Coyote/1.1
}
但是我真的不知道如何访问这个附件,我认为这个错误可能与我试图在一个操作中准备好附件和响应的其他部分而实际上只有部分响应是拉链。
代码看起来像这样:
HttpWebRequest w = (HttpWebRequest)WebRequest.Create(url);
w.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
w.ContentLength = byteArray.Length;
using (Stream dataStream = w.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
using (WebResponse resp = w.GetResponse())
{
using (System.IO.Compression.GZipStream s = new System.IO.Compression.GZipStream(resp.GetResponseStream(), System.IO.Compression.CompressionMode.Decompress))
{
// Just trying to read one byte causes the error.
s.ReadByte();
}
}
任何想法都非常感谢。