0

大约一年前,我制作了一个工具来自动更新我们过时的戴尔 BIOS 文件,但今天它突然停止工作。我正在使用戴尔网站在手动浏览时调用的 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 进行了测试,但对于这个问题,它没有任何区别。超时作为错误返回。

谁能帮我吗?

4

1 回答 1

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);
于 2018-06-11T13:01:39.120 回答