Проблема с загрузкой торрент-файлов с помощью Webclient - PullRequest
2 голосов
/ 09 октября 2011

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

Похоже, отсутствует заголовок или что-то в этом роде. Если вы откроете файл, вы не увидите информацию о трекере. Размер файла примерно на 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");
}

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

Ответы [ 2 ]

1 голос
/ 24 марта 2012

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

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

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

0 голосов
/ 09 апреля 2013

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

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

...