C# HttpWebRequest+;GetResponseStream编码

C# HttpWebRequest+;GetResponseStream编码,c#,C#,如何解码HTTP流响应 我收到以下错误消息: There was an error deserializing the object of type TEST.RootObject '�YL�' contains invalid UTF8 bytes. 这是我的密码: HttpWebRequest request = WebRequest.Create(UrlRequest) as HttpWebRequest; //request.Headers.Add(HttpRe

如何解码HTTP流响应

我收到以下错误消息:

There was an error deserializing the object of type TEST.RootObject '�YL�' contains invalid UTF8 bytes.
这是我的密码:

HttpWebRequest request = WebRequest.Create(UrlRequest) as HttpWebRequest;
            //request.Headers.Add(HttpRequestHeader.AcceptCharset, "utf-8"); // I cannot get this to work!

            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    throw new Exception(String.Format("Server error (HTTP {0}: {1}).", response.StatusCode, response.StatusDescription));
                }

                DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings();
                DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(RootObject));

                object objResponse = jsonSerializer.ReadObject(response.GetResponseStream());

                //// I cannot get this to work!
                //using (Stream resStream = response.GetResponseStream())
                //{
                //    StreamReader reader = new StreamReader(resStream, Encoding.UTF8);
                //    reader.ReadToEnd();

                //}
                //// test

看起来你有一些压缩,也许是GZIP。如果您查看HTTP头,它应该会告诉您…Telerik的Fiddler是一个很好的免费工具,可以这样做。试试这个答案