Как скачать файл в защищенном паролем месте в Delphi 2007 - PullRequest
1 голос
/ 19 декабря 2011

Мне нужно получить содержимое HTML-страницы из Интернета, но содержимое соответствующего ресурса доступно только после входа пользователя на веб-сайт.

Если быть более точным, мне нужно загрузить HTML-страницу видеофайла, который был помечен как неприемлемый на Youtube.У меня есть учетные данные для входа, но я не уверен, как выполнить вход в систему.

В настоящее время я загружаю незащищенные паролем HTML-страницы с HTTPSend из Synapse, и у меня также есть лицензионная копия Clever Internet Suite 7, которую я использовал в предыдущем проекте.Я использую выглядит так (это строго информативно, я могу изменить подход при необходимости):

function GetHTMLFile(s: string): string;
var
  sHTTPSource:TStringList;
  HTTP: THTTPSend;
begin
  try
    sHTTPSource := TStringList.Create;
    if HttpGetText(s, sHTTPSource) then
    begin
      result := sHTTPSource.Text;
    end;
  finally
    sHTTPSource.Free;
  end;
end;

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

1 Ответ

3 голосов
/ 19 декабря 2011

THTTPSend имеет свойство .Cookies (TStringList), которое принимает пары имя-значение (каждая из которых является файлом cookie). Если вы используете один и тот же экземпляр THTTPSend для публикации через процедуру входа в систему, тогда файлы cookie, отправленные с YouTube, будут сохранены и будут сохраняться в будущих запросах с использованием того же экземпляра THTTPSend. Вы можете делать это каждый раз (получая новый файл cookie) или жестко (или программно) кодировать информацию о файле cookie в THTTPSend перед выполнением запроса на защищенную страницу.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...