Поиск сообщества
Показаны результаты для тегов 'TLS'.
Найдено: 1 результат
-
Плоховато знаю особенности интернет протоколов. Необходимо с помощью TidHTTP открыть следующий URL: https://oauth.vk.com/authorize?client_id=491792444&scope=offline&redirect_uri=https://oauth.vk.com/blank.html&display=mobile&v=5.28&response_type=token Вылетает ошибка: Код, с помощью которого подключаюсь: unit vkAPI.Core.Requests; interface uses System.Classes; Type TRequestMng = Class(TComponent) Private Const VK_MIN_INTERVAL = 1000 / 3 + 1; (* Параметры могут передаваться как методом GET, так и POST. Если вы будете передавать большие данные (больше 2 килобайт), то следует использовать метод POST. *) VK_MAX_GET_LENTHG = 2000; private fisSSL: Boolean; fLastAPIusage: TDateTime; protected function BetwenMS(Now, Old: TDateTime): integer; public constructor Create(AOwner: TComponent); override; Function Get(Const URL: String): String; published property IsSSL: Boolean read fisSSL write fisSSL default False; End; implementation uses vkAPI.Core.Utils, idHTTP, IdSSLOpenSSL, System.SysUtils; { TRequestMng } function TRequestMng.BetwenMS(Now, Old: TDateTime): integer; begin Result := Round((Now - Old) * 24 * 60 * 60 * 1000); end; constructor TRequestMng.Create(AOwner: TComponent); begin inherited Create(AOwner); fisSSL := False; end; function TRequestMng.Get(const URL: String): String; var fHTTP: TIdHTTP; fSSL: TIdSSLIOHandlerSocketOpenSSL; begin fHTTP := TIdHTTP.Create; // if IsSSL then begin fSSL := TIdSSLIOHandlerSocketOpenSSL.Create(fHTTP); fHTTP.IOHandler := fSSL; fHTTP.AllowCookies := True; fHTTP.HandleRedirects := True; end; try if URL.Length > VK_MAX_GET_LENTHG then raise Exception.Create ('Если вы будете передавать большие данные (больше 2 килобайт), то следует использовать метод POST. '); if BetwenMS(Now, fLastAPIusage) < VK_MIN_INTERVAL then begin Sleep(BetwenMS(Now, fLastAPIusage)); end; Result := fHTTP.Get(URL); fLastAPIusage := Now; finally // if IsSSL then FreeAndNil(fSSL); FreeAndNil(fHTTP); end; end; end. Код программы: program Project4; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, vkAPI.Core.Requests in 'vkApi\vkAPI.Core.Requests.pas'; Var VK: vkAPI.Core.Requests.TRequestMng; begin VK := TRequestMng.Create(nil); try { TODO -oUser -cConsole Main : Insert code here } (VK.Get('https://oauth.vk.com/authorize?client_id=491792444&scope=offline' + '&redirect_uri=https://oauth.vk.com/blank.html&display=mobile&' + 'v=5.28&response_type=token')); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; VK.Free; end.