Проблема со скачиванием торрент-файлов с помощью веб-клиента

Я пытаюсь создать приложение, которое будет загружать торрент-файлы. Во время загрузки кажется, что файлы не сохраняются правильно.

Кажется, отсутствует заголовок или что-то в этом роде. Если вы откроете файл, вы не увидите информацию о трекере. Файл примерно на 1–3 КБ меньше, чем если бы я загружал его из браузера.

Я решил, что это проблема типа mime-файла, потому что я заменил торрент-ссылку на какое-то изображение в Google, и оно загружается нормально.

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");
}

Не знаю, почему отсутствуют заголовок и трекеры.


person Aphixe    schedule 09.10.2011    source источник
comment
Вы уверены, что скачиваете с того же URL?   -  person svick    schedule 09.10.2011
comment
У вас такая же проблема, вы ее решили?   -  person Khalos    schedule 23.03.2012
comment
извините за поздний ответ, ответ - я еще не мог понять.   -  person Aphixe    schedule 11.12.2012


Ответы (2)


У меня тоже есть эта проблема. Я думаю, что сузил его до перенаправления на сайт торрент-кэша, который находится за SSL. Если вы откроете Fiddler и настроите его для расшифровки SSL-трафика, а затем выполните раздел кода WebClient.Download, вы должны получить все данные заголовка/трекера.

Но в ту минуту, когда вы закрываете Fiddler и этот трафик не расшифровывается, данные заголовка/трекера больше не поступают.

Не знаю, как обойти эту проблему.

person Rob DeRosa    schedule 23.03.2012

Нашел ответ на это ... Ответы используют сжатие gzip. Все, что вам нужно сделать, это добавить следующие строки в ваш веб-запрос:

request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); request.AutomaticDecompression = DecompressionMethods.GZip | Методы декомпрессии.Deflate;

person Donuts    schedule 09.04.2013