-3

该站点提供的链接为http://www.example.com/download.php?id=53979。我知道这是一个 pdf 文件,我想通过 C# 程序下载它。这可能吗?如果可以,怎么做?

4

1 回答 1

4

为了下载文件,您只需使用上面提到的问题中WebClient的对象:

using (var client = new WebClient())
    client.DownloadFile("http://www.datasheet4u.com/download.php?id=53979", "datasheet.pdf");

使您的情况略有不同的原因与用 PHP 或类似的东西编写的服务器无关。您提供的链接(http://www.datasheet4u.com/datasheet/L/M/7/LM741_NationalSemiconductor.pdf.html)似乎Referer在提供文件时正在检查标题。这可能是他们试图阻止您尝试做的事情,但实际上并没有阻止它。

您需要做的就是Referer在请求中添加一个标头。像这样的东西:

using (var client = new WebClient())
{
    client.Headers.Add("Referer","http://www.datasheet4u.com/datasheet/L/M/7/LM741_NationalSemiconductor.pdf.html");
    client.DownloadFile("http://www.datasheet4u.com/download.php?id=53979", "datasheet.pdf");
}

下载文件的方法还是一样的。服务器只要求您在请求中发送一条额外的信息。

于 2013-09-29T11:46:18.060 回答