Отправка SSL-HTTP-запроса из Windows Server 2012 R2 - PullRequest
0 голосов
/ 23 сентября 2019

У меня проблема только в версии Windows Server 2012 R2.когда я отправляю запрос SSL GET, я ничего не получаю, даже сообщение об ошибке.я не знаю, если его совместимость проблемы DLL или что, я попробовал каждую из этих версий: https://indy.fulgan.com/SSL/.может быть, проблема в моем коде?

procedure TForm5.FormCreate(Sender: TObject);
    var
        LJSONArray : TJSONArray;
        Temp : TStrings;
        IdSSL: TIdSSLIOHandlerSocketOpenSSL;
        lHTTP: TIdHTTP;
        K : Boolean;
        pw : PwideChar;
    begin
      TThread.CreateAnonymousThread(procedure   () var  I :Integer;
        begin
          try
               Temp := TStringList.Create;
              lHTTP := TIdHTTP.Create(nil);
              IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
              lHTTp.ReadTimeout := 60000;
              IdSSL.SSLOptions.Method := sslvTLSv1_1;
              IdSSL.SSLOptions.Mode := sslmClient;
              lHTTP.IOHandler := IdSSL;
              lHTTP.HandleRedirects := True;
              LJSONArray := System.JSON.TJSONArray.Create;
              lhttp.Request.Accept := 'application/json, text/plain; q=0.9, text/html;q=0.8';
              lHTTP.Request.Host := 'baas.kinvey.com';
              lHTTP.Request.CustomHeaders.Values['Connection'] := 'Keep-Alive';
              lHTTP.Request.CustomHeaders.Values['Authorization'] :=  'Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
              LHTTP.Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
              lHTTP.Request.UserAgent := 'Embarcadero RESTClient/1.0';
              Reply := lhttp.Get('https://baas.kinvey.com/appdata/kid_xxxxxTEst/');
              LJSONArray :=  TJSONObject.ParseJSONValue(Reply, True) as TJSONArray;
                 for I := 0 to LJSONArray.Count -1 do
                      begin
                            Temp.Add(LJSonArray.Items[I].GetValue<string>('KEY'));
                      end;
                LJSONArray.Free;
                             K := False;
                             PW := pChar(Temp.text);
                             K := ExistWordInString(PW,'YES',[soWholeWord,soDown]);
                           if K = True then
                           begin
                              TThread.Synchronize (TThread.CurrentThread,
                                        procedure ()
                                          begin
                                              Left:=(Screen.Width-Width)  div 2;
                                        end);
                                end;
                           if K = False then
                           begin
                              TThread.Synchronize (TThread.CurrentThread,
                                        procedure ()
                                        begin
                                        Form5.Caption := '';
                                        end);
                                        end;
            except on E :exception do
                  begin
                    TThread.Synchronize (TThread.CurrentThread,
                      procedure ()
                      begin
                      memo1.lines.add(E.Message);
                      end);
                  end;
                end;
     end).Start;
    end;

Примечание: код работает на любом другом компьютере, кроме Win server 2012 R2

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