HttpWebResponse文本似乎不是JSON

时间:2016-04-28 18:31:23

标签: c# json rest

我正在进行休息调用,其中我得到一个包含数据的HttpWebResponse。似乎数据是序列化的,我试图得到请求的纯文本。我一直在使用chrome扩展Advanced Rest客户端,在调用相同的请求时,它能够显示json响应的文本版本。

根据我在这里阅读的内容,您需要反序列化到预期的对象中。但是,很明显chrome插件不知道对象类型,仍然可以打印出纯文本。

是否有可能在c#中做同样的事情?

HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;

request.Method = "POST";
request.ContentType = "application/json";

// [code removed for setting json data via stream writer


using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{

   // This is where I am trying to figure out how to get plain readable text out of response.GetResponseStream()

}

编辑:如果我只是使用StreamReader从响应流中获取文本,我会得到一堆二进制数据而不是普通的json文本。

编辑:意识到问题与压缩有关。这可以关闭。

2 个答案:

答案 0 :(得分:3)

我不确定是否正确,但您可以将响应作为字符串执行此操作:

using (var sr = new StreamReader(response.GetResponseStream()))
{
    text = sr.ReadToEnd();
}

答案 1 :(得分:1)

原来我的问题是由于压缩造成的。我意识到标题包含“Content-Encoding:gzip”,所以我搜索了如何用gzip压缩解压缩然后文本是正确的json。谢谢大家