我正在尝试使用async、await和HttpClient下载网页,但只得到一个充满特殊字符的字符串... 代码如下:
当我进行技术操作时,
static async void DownloadPageAsync(string url)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate");
client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Charset", "ISO-8859-1");
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
var responseStream = await response.Content.ReadAsStreamAsync();
var streamReader = new StreamReader(responseStream);
var str = streamReader.ReadToEnd();
}
并且网址是
url = @"http://www.nseindia.com/live_market/dynaContent/live_watch/live_index_watch.htm";
当我进行技术操作时,
client.DefaultRequestHeaders.Add("User-Agent",
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2;
WOW64; Trident/6.0)");
我使用了这四个DefaultRequestHeaders,但是出现了403错误。然而,这是一个nse网站,对所有人免费开放。请帮帮我,让我的朋友们得到正确的响应。
谢谢!
Srivastava
await response.Content.ReadAsStringAsync();
而不是使用一个 stream 吗? - Jacob Roberts