使用 webclient C# 检查 URL 是否为下载链接

2023-12-22

我正在从历史数据库中读取数据,对于读取的每个 URL,我都会下载它并将数据存储到字符串中。我希望能够确定该链接是否是下载链接,即 .exe 或 .zip,例如我假设我需要阅读标头来确定这一点,但我不知道如何使用 WebClient 来做到这一点。有什么建议么?

while (sqlite_datareader.Read())
{
    noIndex = false;

    string url = (string)sqlite_datareader["url"];

    try
    {
        if (url.Contains("http") && (!url.Contains(".pdf")) && (!url.Contains(".jpg")) && (!url.Contains("https")) && !isInBlackList(url))
        {

            WebClient client = new WebClient(); 
            client.Headers.Add("user-agent", "Only a test!");


            String htmlCode = client.DownloadString(url);
        }
    }
}

我不会加载链接后面的完整内容,而是发出 HEAD 请求。

HEAD 方法与 GET 相同,只是服务器不得在响应中返回消息正文。响应 HEAD 请求的 HTTP 标头中包含的元信息应该与响应 GET 请求而发送的信息相同。此方法可用于获取有关请求所隐含的实体的元信息,而无需传输实体主体本身。此方法通常用于测试超文本链接的有效性、可访问性和最近的修改。

报价http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

有关 C# 示例,请参阅这些问题

  • 如何使用 C# 和 WebClient 类检查服务器上是否存在文件 https://stackoverflow.com/questions/830435/how-to-check-if-a-file-exists-on-a-server-using-c-and-the-webclient-class
  • 如何检查 System.Net.WebClient.DownloadData 是否正在下载二进制文件? https://stackoverflow.com/questions/153451/c-how-to-check-if-system-net-webclient-downloaddata-is-downloading-a-binary-fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 webclient C# 检查 URL 是否为下载链接 的相关文章

随机推荐

  • 如何使用 jQuery 从文件添加内容?

    我有主要的html文档 div div 我还有一个内容文件 不是 html 文档 只是 html 代码 div class CodeRay div class code pre span class no 1 span require pr
  • 神经网络初始化 - Nguyen Widrow 实现?

    我尝试过实现 Nguyen Widrow 算法 如下 它似乎运行正常 但我有一些后续问题 这看起来像一个正确的实现吗 Nguyen Widrow 初始化是否适用于任何网络拓扑 尺寸 即5层自动编码器 Nguyen Widrow 初始化对任何
  • 性能和耐久性存储API(块存储)

    我们是 DST India 团队的一员 目前我们正在为客户提供一项产品 我们尝试使用 SoftLayer 提供的 REST API 将 SoftLayer 的性能和耐用存储功能集成到 ICO 中 我已经浏览了 SoftLayer 文档 但找
  • 在电子邮件中附加多种图像格式,而不仅仅是 JPG

    这就是我到目前为止所拥有的 MemoryStream imgStream new MemoryStream System Drawing Image img System Drawing Image FromStream fuImage P
  • 如何在Python中连接字符串和数字? [复制]

    这个问题在这里已经有答案了 我试图在Python 中连接一个字符串和一个数字 当我尝试这样做时 它给了我一个错误 abc 9 错误是 Traceback most recent call last File
  • HashMap 和 int 作为键

    我正在尝试构建一个 HashMap 它将整数作为键 将对象作为值 我的语法是 HashMap
  • Win2008 R2 上的 MSMQ 不会接收来自旧客户端的消息

    我在这里遇到一个非常奇怪的问题 我有一台安装了消息队列的 Windows 2008 R2 服务器 在另一台计算机上 运行 Windows 2003 的服务被设置为将消息发送到 2008 服务器上的公共队列 但是 消息永远不会显示在服务器上
  • 视频文件的下载链接

    我有一个视频想要提供下载链接 然而 创建了一个简单的 a href myvideo mp4 Download a 标签 当我点击它 在 Firefox 和 Chrome 中 时 它开始播放视频而不是允许下载视频 有没有一种方法可以在所有当前
  • 在 PHP 中如何不允许用户在注销后返回?

    我刚刚编写了一个PHP登录脚本 我想要完成的是 当用户单击注销链接时 在注销后 无论单击浏览器的后退按钮 他们都无法访问该页面 这是注销功能 Start the Session session start session destroy h
  • 如何在 DTrace 操作中打印 CFStringRef?

    我有一个 DTrace 探针捕获对函数的调用 该函数的参数之一是CFStringRef 这是保存指向 unicode 字符串的指针的私有结构 但是CFStringRef本身不是一个char 所以普通的 DTrace 方法如copyinstr
  • 使用 xdebug 和 netbeans 调试 php-cli 脚本?

    我已设法从 IDE 本身启动 php cli 脚本调试会话 但我需要从 shell 命令行启动调试会话 这些是相当复杂的维护 PHP 脚本 需要大量输入参数 因此从 Netbeans 中输入参数有点麻烦 我之前用 Zend studio 做
  • XML 模式中的递归?

    我需要创建一个 XML 模式来验证 XML 文档的树结构 我不确切知道树的出现次数或深度级别 XML 示例
  • CPython 源 - 如何构建静态 python26.lib?

    我正在尝试使用 Cython 将 hello pyx 文件编译为 exe 第一步是使用命令 cython cplus embed hello pyx 将 hello pyx 编译为 hello cpp 文件 Embed选项意味着Genera
  • Sublime Text - 选择最后一个增量选择的元素?

    I recently discovered the insanely useful ctrl D functionality in sublime text With a careful eye it s almost as functio
  • AngularJS ng-model 的默认值

    是否可以使 ng models 获得默认值 例如 我有一个使用了 jQuery 的表单serialize函数 每当 a 值不存在时 它仍然会将其包含在序列化数据中 例如 name age 但是 当我使用尝试使用 Angular 发布它时 h
  • Express 3.4.8 照片上传问题-不使用bodyParser()如何解决?

    我在 Gist 的代码 https gist github com yhagio 10654836 https gist github com yhagio 10654836 我是 Express 新手 尝试从 Node js in Act
  • WAMPServer 在 Windows 10 上无法正常工作,“无法执行服务操作”

    最近我从Windows 7 64升级到Windows 10 64 在此之前 我已经让 WAMPServer 运行得很好 但现在它不起作用了 每当我启动它时 我都会使服务器离线 单击 上线 只会弹出 无法执行服务操作 错误 我已经尝试过重新安
  • mapboxgl.js 与 leaflet.js

    我即将启动一个 Web 应用程序 其主要目的是显示 Mapbox 地图 切换图层并根据与地图的交互显示数据 我想知道我应该使用 mapboxgl js 和 leaflet js mapboxgl js 或 leaflet js 每个人都一直
  • 异步下载多个文件并等待所有文件完成,然后再执行其余代码

    我正在尝试从互联网下载多个文件并等待所有文件完成 这是我正在运行的 C 控制台应用程序 因此不需要进度条事件处理程序 然而 即使所有文件尚未下载 它目前也只是继续执行代码 1 下载所有文件 2 完成下载文件A 3 所有文件下载完毕 4 文件
  • 使用 webclient C# 检查 URL 是否为下载链接

    我正在从历史数据库中读取数据 对于读取的每个 URL 我都会下载它并将数据存储到字符串中 我希望能够确定该链接是否是下载链接 即 exe 或 zip 例如我假设我需要阅读标头来确定这一点 但我不知道如何使用 WebClient 来做到这一点