我按如下方式连接到网络服务:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(
"http://mywebserviceaddress.com/attributes=someatt");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
using (StreamReader stIn = new StreamReader(
req.GetResponse().GetResponseStream(),Encoding.UTF8))
{
strResponse = stIn.ReadToEnd();
return strResponse;
}
但是我得到了(可能)编码错误的响应,因此,在我的页面上,我遇到了以下问题:
我做错了什么或是第三方网络服务问题?如果没有这个愚蠢的问题,我怎么能得到响应呢? 这是调试器的截图:
答案 0 :(得分:1)
页面可能不是 UTF8 。看起来特殊字符使用ASCII字符的上半部分,因此它是某种旧字符集。将其读作UTF8会导致错误,因为读者不期望单字节特殊字符。
将GetResponse()
的结果存储到变量中并输出 ContentType
CharacterSet
的内容。如果服务器正常运行,它将在此属性中显示已使用的字符集。然后,您可以在StreamReader
中使用正确的字符集。