html代碼被壓縮..設置AutomaticDecompression爲GZip。 剛剛嘗試這個代碼,它會工作(與YOUE網頁進行了測試)
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
request.AutomaticDecompression = DecompressionMethods.GZip;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
readStream = new StreamReader(receiveStream);
else
readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
string data = readStream.ReadToEnd();
response.Close();
readStream.Close();
}
既然你問了一個「Web客戶端」解決方案(見註釋):
因爲WebClient的實現是不減壓,你將不得不製作你自己的DecompressedWebClient。從WebClient類繼承很容易:
public class AutomaticDecompressionWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address) as HttpWebRequest;
if (request == null) throw new InvalidOperationException("You can not use this WebClient implementation with an address that is not an http uri.");
request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
return request;
}
}
也許是因爲服務器返回了text/plain?誰知道。你試過小提琴手嗎? – erikkallen
看起來像[*編碼*](http://www.sitepoint.com/do-you-know-your-character-encodings/)問題。 –
@erikkallen:我會嘗試提琴手,將更新結果 –