使用 Webclient 下载 Torrent 文件的问题

Posted

技术标签:

【中文标题】使用 Webclient 下载 Torrent 文件的问题【英文标题】:Issue with Downloading Torrent Files Using Webclient 【发布时间】:2011-12-03 18:44:10 【问题描述】:

我正在尝试构建一个可以下载 torrent 文件的应用程序。下载时似乎无法正确保存文件。

它似乎缺少标题或其他东西。如果您打开文件,您将看不到跟踪器的信息。该文件比我从浏览器下载的文件小 1 KB 到 3 KB。

我认为它必须是 mime 文件类型问题,因为我用谷歌上的一些图片替换了 torrent 链接,并且下载正常。

private void submitButton_Click(object sender, EventArgs e)

string hashCodeString;
hashCodeString = hashTextBox.Text;
addressTextBox.Text = "http://www.torrage.com/torrent/" + hashCodeString +".torrent";
torrageLinkLabel.Text = addressTextBox.Text;


private void torrageLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

using (var client = new WebClient())

client.DownloadFile(torrageLinkLabel.Tex… @"C:\torrent\file.torrent");

不知道为什么它缺少标题和跟踪器。

【问题讨论】:

您确定从同一个 URL 下载吗? 遇到同样的问题,你解决了吗? 抱歉回复晚了,我还没弄明白。 【参考方案1】:

我也遇到了这个问题。我想我已经把它缩小到重定向到位于 SSL 后面的 torrent 缓存站点。如果您打开 Fiddler 并将其配置为解密 SSL 流量,然后执行您的 WebClient.Download 代码部分,您应该会获得所有标头/跟踪器数据。

但是,当您关闭 Fiddler 并且流量未解密时,标头/跟踪器数据就不会再下降了。

不知道如何解决这个问题。

【讨论】:

【参考方案2】:

找到了这个问题的答案...响应使用 gzip 压缩。您需要做的就是将以下行添加到您的网络请求中:

request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

【讨论】:

以上是关于使用 Webclient 下载 Torrent 文件的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中使用 urllib 下载 .torrent 文件?

使用 ASP.NET 下载 torrent 内容

使用 urllib2 下载 torrent 文件

无法使用 monotorrent 从新创建的 torrent 下载文件

我无法从公共跟踪器 libtorrent 下载 torrent

Java Jsoup 下载 torrent 文件