使用 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 文件的问题的主要内容,如果未能解决你的问题,请参考以下文章