C# WebClient DownloadString 几个月后突然超时
C# WebClient DownloadString suddenly gives timeout after months
大约一年前我做了一个工具来自动更新我们过时的戴尔 BIOS 文件,但今天它突然停止工作了。我正在使用 REST API 手动浏览时戴尔网站调用。
这是我发送的请求,下面添加了 header:
GET http://www.dell.com/support/home/be/nl/bebsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A
X-Requested-With: XMLHttpRequest
奇怪的是,当它与像 HttpRequester(用于 firefox)这样的请求操纵器一起使用时它仍然有效。我确定没有发送其他像 UserAgent 这样的 header。
C#中的代码(有一个模型):
WebClient wc = new WebClient();
wc.Headers.Add("X-Requested-With: XMLHttpRequest");
wc.QueryString.Add("name", "5580");
wc.DownloadStringCompleted += Wc_DownloadStringCompleted;
wc.DownloadStringAsync(new Uri("http://www.dell.com/support/home/be/nl/bebsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A"));
我测试过是否使用 Async,但对于这个问题没有影响。超时作为错误返回。
谁能帮帮我?
用这个。
WebClient wc = new WebClient();
wc.Headers.Add("X-Requested-With","XMLHttpRequest");
wc.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
wc.Headers.Add("Accept-Language", "en-US,en;q=0.9");
var response = wc.DownloadString("https://www.dell.com/support/home/in/en/inbsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A&name=5580");
Console.WriteLine(response);
大约一年前我做了一个工具来自动更新我们过时的戴尔 BIOS 文件,但今天它突然停止工作了。我正在使用 REST API 手动浏览时戴尔网站调用。
这是我发送的请求,下面添加了 header:
GET http://www.dell.com/support/home/be/nl/bebsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A
X-Requested-With: XMLHttpRequest
奇怪的是,当它与像 HttpRequester(用于 firefox)这样的请求操纵器一起使用时它仍然有效。我确定没有发送其他像 UserAgent 这样的 header。
C#中的代码(有一个模型):
WebClient wc = new WebClient();
wc.Headers.Add("X-Requested-With: XMLHttpRequest");
wc.QueryString.Add("name", "5580");
wc.DownloadStringCompleted += Wc_DownloadStringCompleted;
wc.DownloadStringAsync(new Uri("http://www.dell.com/support/home/be/nl/bebsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A"));
我测试过是否使用 Async,但对于这个问题没有影响。超时作为错误返回。
谁能帮帮我?
用这个。
WebClient wc = new WebClient();
wc.Headers.Add("X-Requested-With","XMLHttpRequest");
wc.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
wc.Headers.Add("Accept-Language", "en-US,en;q=0.9");
var response = wc.DownloadString("https://www.dell.com/support/home/in/en/inbsdt1/drivers/driverslist/platfromdriver?productCode=latitude-15-5580-laptop&osCode=WT64A&name=5580");
Console.WriteLine(response);