Показать сообщение отдельно
  #5  
Старый 21.06.2018, 00:26
Tech N9ne Tech N9ne вне форума
Прохожий
 
Регистрация: 18.05.2018
Сообщения: 31
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
ну, тебя, походу, вежливо послали, т.к. ты ходишь через http, т.е. dll-ки не подцепились.
Для Д7 желательно обновить Indy.
Повторю рабочий код для получения странички:
Код:
function ReadInternetPage(AUrl : String) : String;
var
  IdHTTP : TIdHTTP;
  Id_HandlerSocket : TIdSSLIOHandlerSocketOpenSSL;
begin
  IdHTTP := TIdHTTP.Create(Nil);
  Id_HandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP);
  Try
    IdHTTP.Request.BasicAuthentication := False;
    IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';

    Id_HandlerSocket.SSLOptions.Mode := sslmClient;
    Id_HandlerSocket.SSLOptions.Method := sslvSSLv23;
    IdHTTP.IOHandler := Id_HandlerSocket;

    Result := IdHTTP.Get(FUrl);
  Finally
    Id_HandlerSocket.Free;
    IdHTTP.Free;
  End;
end;

Теперь про декодинг собственно.
Там по ссылке приведена функция декодирования. Вот она:
Код:
function UTF8ToWideString(const S: AnsiString): WideString;
var
  BufSize: Integer;
begin
  Result := '';
  if Length(S) = 0 then Exit;
  BufSize := MultiByteToWideChar(CP_UTF8, 0, PAnsiChar(S), Length(S), nil, 0);
  SetLength(result, BufSize);
  MultiByteToWideChar(CP_UTF8, 0, PANsiChar(S), Length(S), PWideChar(Result), BufSize);
end;
Окей, спасибо!
Обновил инди, 10.
Вставляю первую функцию, ругается на
Код:
Result := IdHTTP.Get(FUrl);
Undeclared identifier: 'Furl'
Там должен быть сайт с которого хочу получить html ?
Пробовал вписывать туда гугл. А как мне получить в мемо html не пойму.
Код:
ReadInternetPage(memo1.lines.text);  // ?????
Если так, то в мемо пусто.

Скорее всего я что-то недопонял, будь добр разжуй мне пожалуйста )
Ответить с цитированием