如何使用ContentEncoding = gzip读取内容webresponse

时间:2018-06-12 06:50:28

标签: httpwebrequest httpwebresponse

我有一个asp.net Web应用程序,它充当报表服务器的包装器。我发一个http web请求并使用SteamReader从SSRS读取响应,然后使用StreamWriter将此响应写回浏览器。

var request = (HttpWebRequest)HttpWebRequest.Create(uri);
var response = request.GetResponse() as HttpWebResponse;

我已经实施了自定义身份验证,所有内容都适用于SSRS 2016,但我遇到了SSRS 2017的问题。 当我从我们的Web应用程序发出Web请求时,我能够从SSRS获得响应,但是当我尝试写回浏览器时,我们收到HTTP错误500.19 - 内部服务器错误。在调试时我注意到Response.ContentEncoding是gzip,不确定是否是它的原因。我尝试阅读下面的gzip,然后使用此代码片段将内容转换回流。即便如此,我们也没有得到正确的结果。

if (response.ContentEncoding == "gzip")
{
    HttpClient client = new HttpClient();
    HttpResponseMessage response_;
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    response_ = client.GetAsync(navRes.NavigatedTo).Result;
    text = response_.Content.ReadAsStringAsync().Result;
}
else
    text = new StreamReader(response.GetResponseStream()).ReadToEnd();
我在这里错过了什么吗? 。任何帮助都会非常感激

谢谢&的问候,

Anitha John

0 个答案:

没有答案
相关问题