Перейти к содержанию

Вопросы

На NetHTTPClient пытаюсь назначить обработчик OnValidateServerCertificate:

 

type
  TFrmMain = class(TForm)
   ...
    procedure OnAuthEvent(const Sender: TObject;
      AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName,
      APassword: string; var AbortAuth: Boolean;
      var Persistence: TAuthPersistenceType);
    procedure OnValidateServerCertificate(const Sender: TObject;
      const ARequest: TURLRequest; const [Ref] Certificate: TCertificate;
      var Accepted: Boolean);

function TFrmMain.GetResponse2(aURL: string): TResponser;
var
  Ss: TStringStream;
  NetHTTPClient2:TNetHTTPClient;
  Respon: IHTTPResponse;
begin
  try
    NetHTTPClient2:=TNetHTTPClient.Create(nil);
    NetHTTPClient2.OnAuthEvent:=OnAuthEvent;
    NetHTTPClient2.OnValidateServerCertificate:=OnValidateServerCertificat; // ошибка компиляции
    ...
    with NetHTTPClient2 do
    begin
       Ss:=TStringStream.Create('', TEncoding.UTF8);
       Respon:=Get(aURL,ss);
    end;

  finally
    NetHTTPClient2.Free;
  end;
end;


procedure TFrmMain.OnValidateServerCertificate(
  const Sender: TObject; const ARequest: TURLRequest;
  const [Ref] Certificate: TCertificate; var Accepted: Boolean);
begin
  Accepted:=true;
end;

Получаю ошибку: Incompatible types: 'Parameter lists differ'

 

Как правильно сделать?

Поделиться сообщением


Ссылка на сообщение

Рекомендуемые сообщения

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Похожий контент

    • От RADStudioDeveloper
      Привет всем!
      Загрузка с WEB сервера файла с помощью
      NetHTTPClient
      NetHTTPClient1.Get(URL, FS) - загрузка проходит хорошо.
      Вопрос как получить имя загружаемого файла?
      Есть реально работающее решение?
       
       
    • От Mars M
      Есть такой вот код для работы с гугл переводчиком:
      procedure TfrmMain.GTranslate; var Data: TStringList; S: String; begin IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU) Gecko/20100625 Firefox/3.6.6'; Data := TStringList.Create; try Data.Text := ('client=x'#13#10 + 'text=' + Edit1.Text + #13#10 + 'hl=en'#13#10 + 'sl=en'#13#10 + 'tl=ru'); try S := (IdHTTP1.Post('http://translate.google.ru/translate_a/t', Data)); except on E: exception do ShowMessage(E.ClassName + ' error raised, with message : ' + E.Message); end; finally Data.Free; end; end; Работает без проблем.
      Переделал его для NetHttpClient, практически один в один и вместо перевода получаю html страницу с гугл капчей.
      Типа такой как получаю если заходить через браузер http://translate.google.ru/translate_a/t?client=x&text=Hello&hl=en&sl=en&tl=ru
      Так в чем между ними разница что получаю разный результат?
      PS: Просто я в проекте и так использую NetHttpClient, хотелось бы на нем и сделать а не плодить кучу однотипных компонентов.
    • От Anasazi
      Всем доброго времени суток. Возникла необходимость решить такую задачу: в таблице базы MySQL хранится список изображений и их URL. Необходимо получить этот список массивом. Затем загрузить изображения и поочередно с интервалом показать их в TImage.
      Понимаю, что получить список изображений правильнее при помощи PHP скрипта, но в каком виде скрип должен вернуть данные, чтобы в Delphi получить из них массив не знаю.
      Раньше для получения изображений использовал такую процедуру. Но вопрос, где хранить изображения перед демонстрацией их в TImage? Создавать несколько MemoryStream?
      procedure LoadWebImage(url: string; image: TBitmap);
      var
        idhttp : TNetHTTPClient;
        ms : TMemoryStream;
      begin
       IdHTTP := TNetHTTPClient.Create(nil);
        ms := TMemoryStream.Create;
        try
          idhttp.Get(url, ms);
          ms.Position := 0;
          image.LoadFromStream(ms);
        finally
          ms.Free;
          idhttp.Free;
        end;
      end;
    • От Rusland
      Как реализовать показ ProgressBar при загрузке фотографии на сервер? Интересует как именно определять сколько байт передано?
      Используется компонент NetHTTPClient.
    • От Rusland
      Вроде видел где-то пример передачи через NetHTTPClient файла (*.png или *.jpg) на сервер, но не могу вспомнить где.
      Помогите с кодом отправки файла.
       
      PS. Инди компоненты не интересуют, не хочется их инспользовать
    • От Rusland
      Так как не получается работать с IdHTTP в сервисе, решил попробовать компонент NetHTTPClient. Бросил NetHTTPClient1 на форму.
      Хочу открыть адрес https://ya.ru
      В папку \Win32\Debug положил libeay32.dll и ssleay32.dll (они рабочие, проверены с IdHTTP)
       
      Код (пока тестирую на обычном приложении, а не в сервисе):
      Получаю access violation в System.Net.HTTPClient в строке 1965 
      if (Result.Value.Chars[0] = '"') and (Result.Value[High(Result.Value)] = '"') then видимо из-за того что Result.Value пустой. 
      А если попробовать открыть https://mail.ru такого не происходит и страница нормально скачивается.
       
      В чем проблема?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...