2016-01-02 4 views
0

Мне нужно загрузить файлы с opensubtitles.org через мое приложение, написанное на GTK # и C#. Приложение основано на платформе .NET 4.0.Скачать файл с opensubtitles.org

Сначала это был код, который я использовал:

var tZip = new FastZip(); 
    try { 
     var tRequest = (HttpWebRequest)HttpWebRequest.Create(tDownloadUrl); 
     var tZipResponse = (HttpWebResponse)tRequest.GetResponse(); 
     using (var tStream = tZipResponse.GetResponseStream()) { 
      using (var tMemStream = new MemoryStream()) { 
       tStream.CopyTo(tMemStream); 
       var tTempPath = Globals.video_location + "OSD"; 
       Directory.CreateDirectory(tTempPath); 
       tZip.ExtractZip(tMemStream, tTempPath, FastZip.Overwrite.Always, null, @"\.srt$", null, false, true); 
       var tDirInfo = new DirectoryInfo(tTempPath); 
       var tFileInfo = new FileInfo(Globals.location_video); 

       var tSrtFile = tDirInfo.EnumerateFiles().FirstOrDefault(); 
       if (tSrtFile == null) { 
        writeLog("No .srt file found in zip.."); 
        goto text; 
       } 
       writeLog("Downloaded and unpacked: " + tSrtFile.Name); 
       File.Copy(tSrtFile.FullName, Globals.video_location+Globals.video_name+".srt", true); 
        Globals.savedTitle = Globals.video_location+Globals.video_name+".srt"; 
       // clean up.. 
       Directory.Delete(tTempPath, true); 
       writeLog("Deleted temp folder."); 
       return true; 
      } 
     }} 

И что работало очень хорошо до тех пор, несколько дней назад, теперь она возвращается кучей HTML коды вместо файла .zip. Я пробовал даже что-то вроде этого:

WebClient client = new WebClient(); 
client.DownloadFile(link, @"OSD\test.zip"); 

Но все просто держит возвращающийся кучу html-кода. Ссылки я обычно пытаюсь загрузить что-то вроде этого: http://dl.opensubtitles.org/en/download/subad/4287952

Если вы нажмете на ссылку выше, это будет просто перенаправить вас на страницу Opensubtitles.org этого конкретного подзаголовка. Но если вы щелкните правой кнопкой мыши по этой ссылке, а затем выберите «открыть в новой вкладке» или «открыть в новом окне», она автоматически запустит загрузку. (Протестировано в Firefox) Также, как только я вставляю эту ссылку в приложение «Internet Download Manager», она автоматически начнет загрузку zip-файла.

Если вы можете помочь мне решить эту проблему, я буду искренне благодарен.

С уважением.

+0

Вы просматривали HTML-код в браузере? Что он говорит? Вероятно, это сообщение об ошибке, которое может помочь вам понять, почему загрузка не выполняется. Также вы должны проверить свойство 'StatusCode'' HttpWebResponse' для определения проблемы. – adv12

ответ

0

Я попал в эту проблему, потому что я напрямую фильтровал веб-сайт xml. Как из ссылки, такой как этот: opensubtitles.org example

И в начале это работало хорошо, но потом они что-то изменили на веб-сайте и перестали работать. Итак, что я сделал, было построено поверх этого: OSHandler

Эта библиотека обработчиков использует XML-RPC, поэтому я считаю, что проблем в будущем не возникнет.