[РЕШЕНО]Ошибка инициализации SSL в TFPHTTPClient в потоке
 Добавлено: 04.04.2018 16:16:57
Добавлено: 04.04.2018 16:16:57Добрый день.
Столкнулся с такой проблемой.
Имеется класс наследник от TThread в нем происходит обращение к https узлу.
В основном теле создаю несколько потоков в которых идет обращения на https узлы.
Когда поток один то все работает замечательно, когда запускаю одновременно несколько потоков то первый поток запускается успешно а в последующих возникает ошибка
Вот простейший код который воспроизводит эту ошибку.
Что я делаю не так и как победить?
Спасибо.
			Столкнулся с такой проблемой.
Имеется класс наследник от TThread в нем происходит обращение к https узлу.
В основном теле создаю несколько потоков в которых идет обращения на https узлы.
Когда поток один то все работает замечательно, когда запускаю одновременно несколько потоков то первый поток запускается успешно а в последующих возникает ошибка
Project project1 raised exception class 'EInOutError' with message:
Could not initialize OpenSSL library
Вот простейший код который воспроизводит эту ошибку.
- Код: Выделить всё
- program project1;
 uses
 unit1;
 var
 MYThread: array[0..2] of TMyHTTPRequest;
 i: integer;
 begin
 for i := 0 to 2 do
 begin
 MYThread[i] := TMyHTTPRequest.Create(True);
 MYThread[i].FreeOnTerminate := True;
 MYThread[i].Start;
 end;
 ReadLn;
 end.
- Код: Выделить всё
- unit Unit1;
 {$mode objfpc}{$H+}
 interface
 uses
 Classes, SysUtils, fphttpclient, sslsockets, fpopenssl;
 type
 { TMyHTTPRequest }
 TMyHTTPRequest = class(TThread)
 public
 procedure Execute; override;
 end;
 implementation
 { TMyHTTPRequest }
 procedure TMyHTTPRequest.Execute;
 var
 Client: TFPHTTPClient;
 res: string;
 begin
 Client := TFPHTTPClient.Create(nil);
 res := Client.Get('https://google.com');
 FreeAndNil(Client);
 end;
 end.
Что я делаю не так и как победить?
Спасибо.

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