Чтобы проверить тип ресурса без его загрузки, используйте запрос HEAD:
WebRequest request= WebRequest.Create("http://foobar.com/foo.torrent");
request.Method= "HEAD";
WebResponse response= request.GetResponse();
if (response.Headers.Get("Content-Type")=="application/x-bittorrent") {
...
Однако тип application/x-bittorrent
может быть не настроен на некоторых серверах, поэтому возможно, что вместо этого вы можете получить application/octet-stream
или даже text/plain
, если вам не повезло. Если вам необходимо учесть это, все, что вы можете сделать, - это загрузить файл с помощью обычного запроса GET и посмотреть, сможете ли вы его декодировать.
Формат файла BitTorrent основан на формате, называемом «bencode». Вот библиотека .NET, которая утверждает, что справилась с этим. Вы можете догадаться, что любой допустимый файл bencode является торрент-файлом, но если вы хотите убедиться, что можете посмотреть, в какое преобразование он декодируется, и проверить свойства info
и announce
.