C#WebClient DownloadString突然在几个月

时间:2018-06-11 11:52:56

标签: c# rest timeout webclient downloadstring

大约一年前,我制作了一个工具来自动更新我们过时的戴尔BIOS文件,但今天它突然停止工作。我在手动上网时使用了Dell网站调用的REST API。

这是我发送的请求,下面添加了标题:

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这样的其他标头。

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进行了测试,但对于这个问题,它并没有什么不同。超时将作为错误返回。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

使用它。

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);