Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2014, 00:38   #1
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию SSL + IdHTTP = Freeze

Доброго времени суток.
Возникла необходимость работать с https, использую связку IdHTTP + SSL.
Все работает, но есть одна беда. При первом обращении к странице (https://api.imgur.com/3/upload.xml) запрос длится (!) 2547 мс, а во второй и последующие разы 110-125 мс.
Библиотеки openSSL 1.0.1, Indy 10.5.9, пробовал с Indy 10.6.5080.

Создал пустой проект, чисто для проверки - проблема осталась.

Код:
T:=GetTickCount;
http.Get('https://api.imgur.com/3/upload.xml');
T:=GetTickCount-T;
KoBRaAndrey вне форума Ответить с цитированием
Старый 31.01.2014, 03:03   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Вопрос

Компонент IdAntiFreeze есть на форме?
Streletz вне форума Ответить с цитированием
Старый 31.01.2014, 03:21   #3
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

Действие в отдельном потоке. Дело не в подвисании, а во времени. Первый раз выполняется 2547 мс, а дальше не более 125.
KoBRaAndrey вне форума Ответить с цитированием
Старый 31.01.2014, 04:30   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от KoBRaAndrey Посмотреть сообщение
Действие в отдельном потоке. Дело не в подвисании, а во времени. Первый раз выполняется 2547 мс, а дальше не более 125.
Судя по всему, здесь дело в кэшировании. При первичном обращении программа получает данные с сервера целиком. При втором и последующих обращениях, идёт работа с данными, которые уже, если не полностью, то частично кэшированы.
Streletz вне форума Ответить с цитированием
Старый 01.02.2014, 02:02   #5
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

Как я узнал, на каждый сайт создается свой ключ, из за чего первый раз и медлит.
Но хром умеет его сохранять.
Есть предположения как сохранить ключ из IdSSLIOHandlerSocketOpenSSL, а потом его загрузить обратно?
KoBRaAndrey вне форума Ответить с цитированием
Старый 02.02.2014, 05:10   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Советую обратиться к документации.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IdHttp+SSL mishax Работа с сетью в Delphi 16 15.08.2012 09:36
idhttp ssl авторизация отправка данных post tauxxx Работа с сетью в Delphi 3 31.05.2012 14:17
SSL в idhttp пауэрлифтинг Работа с сетью в Delphi 4 23.05.2010 20:32
ssh and ssl Neymexa Свободное общение 1 23.04.2010 20:41