【问题标题】:How to retrieve a PDF using WebBrowser or WebClient in .NET?如何在 .NET 中使用 WebBrowser 或 WebClient 检索 PDF?
【发布时间】:2010-11-23 11:03:05
【问题描述】:

我正在尝试使用 .NET 自动每天检索 Web 文件。

该文件是一个 PDF,其地址类似于:

http://www.example.com/?s=doc20101022

这些是使用 IE 注册调试的 HTTP 请求的标头

HTTP/1.1 200 OK
Server: Apache/2.2.3 (CentOS)
Vary: User-Agent,Accept-Encoding
Expires: 0
Cache-Control: must-revalidate, post-check=0, pre-check=0
Pragma: public
Last-Modified: Mon, 22 Nov 2010 22:45:12 GMT
Cache-Control: private
Content-Disposition: attachment; filename="doc20101022.pdf"
Content-Transfer-Encoding: binary
Content-Type: application/force-download
Date: Tue, 23 Nov 2010 10:41:43 GMT
X-Varnish: 2155914052
Via: 1.1 varnish
Content-Length: 6596997
Proxy-Connection: Keep-Alive
Connection: Keep-Alive
Age: 2

您能否建议我使用 WebClient、WebBrowser 或其他 VB.NET (Framework 4.0) 组件获取并在本地保存它的方法?

【问题讨论】:

    标签: c# vb.net winforms


    【解决方案1】:

    使用WebClientDownloadFileDownloadFileAsync方法:

    WebClient wc = new WebClient();
    wc.DownloadFileCompleted += new AsyncCompletedEventHandler(delegate(object source, AsyncCompletedEventArgs args) {
        // Do something when the file has been downloaded successfully.
    });
    wc.DownloadFileAsync(new Uri("http://www.example.com/?s=doc20101022"), @"C:\Yourfile.pdf");
    

    编辑:您用 c# 标记了问题,并且在主题中只提到了 .NET,所以我为您提供了 C# 解决方案。如果你在 VB.NET 中需要它,它应该很容易移植。

    【讨论】:

    • 我试过了,但它没有按预期工作。它给我下载了一些东西,但内容是 HTML 页面而不是 PDF 文档。可能通过example.com/?s=doc20101022 参与了一些重定向
    • 如果页面没有重定向到实际文件,你需要进行一些解析。让我猜猜..你想从一些一键式主机下载?如果是,请给我们一个示例链接,以便我们查看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多