Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.02.2017, 12:02
and.enk and.enk вне форума
Прохожий
 
Регистрация: 22.02.2017
Сообщения: 11
Версия Delphi: Delphi 2010
Репутация: 10
Восклицание Ошибка Socket Error 0 Indy 10.5.5

Всем здравия!
Пишу не большую программку для личного использования столкнул с первой проблемой на первом шаге, на шаге авторизации в вк.

Все параметры всё правильно собирается и отправляется методом POST получаю код редиректа 302

В idhttp.Response.Location находится заветная ссылка по которой если перейти авторизуешься в вк, я пробовал получил ссылку в Memo она такого вида https://m.vk.com/login?role=fast&to=&s=1&__q_hash=(тут md5_hash судя по виду) вставлял этот линк в браузер и переходил на свою страницу авторизованным это меня удивило...

Но когда я
Код:
 try
IdHTTP.HandleRedirects:= false;
IdHTTP.Post('https://login.vk.com/', post);
 except
if (idHTTP.Response.ResponseText='HTTP/1.1 302 Found') then //Если сервер ответил нам редиректом то
sleep(1000);
url:= idhttp.Response.Location ; // Достаем адрес редиректа из заголовка ответа сервера
idhttp.HandleRedirects:= true; // Включаем авторедирект
if pos('Выход',idhttp.Get(url))>0 then // Если на странице есть слово Выход то авторизация удалась
memo1.Text:= 'OK';

lmikle: пользуемся тегами

Мне прога пишет Socket Error #0

Перепробовал массу способов не могу разобраться, остаётся только переходить на Synapse если не получится с Indy, только с Synapse вообще не работал.

Версия Indy 10.5.5 искал свежее не нашёл... Библиотеки libeay32.dll и ssleay32 лежат рядом с прогой какая версия не помню, пробовал разные скачивать все выдавали ошибку точка входа не найдена что то такое, может быть в них проблема я хз, подскажите в чём может быть дело

Последний раз редактировалось lmikle, 22.02.2017 в 20:31.
Ответить с цитированием
  #2  
Старый 22.02.2017, 12:16
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Вашей реализации не вижу, но насколько знаю, мало того что библиотеки рядом лежат. Я конечно не специалист в инди, но разок пришлось решать. Вот пример из рабочего проекта (правда тут отправка почты, но не суть - главное ssl).
Код:
...
  id_SMTP := TIdSMTP.Create;
  id_SMTP.Host := 'smtp.yandex.ru';
  id_SMTP.Port := 25;
.....
  id_SSL := TIdSSLIOHandlerSocketOpenSSL.Create;
  id_SSL.Destination := id_SMTP.Host + ':' + IntToStr(id_SMTP.Port);
  id_SSL.Host := id_SMTP.Host;
  id_SSL.Port := id_SMTP.Port;
  id_SSL.DefaultPort := 0;
  id_SSL.SSLOptions.Method := sslvSSLv23;
  id_SSL.SSLOptions.Mode := sslmUnassigned;
  id_SMTP.IOHandler := id_SSL;
  id_SMTP.UseTLS := utUseExplicitTLS;
...
  try
    id_SMTP.Connect;
    if id_SMTP.Connected then
      id_SMTP.Send(id_MSG);
    id_SMTP.Disconnect;
  except
  ...
  end;
...
  id_SMTP.Free;
  id_SSL.Free;
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #3  
Старый 22.02.2017, 12:32
and.enk and.enk вне форума
Прохожий
 
Регистрация: 22.02.2017
Сообщения: 11
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию

SSL работает нормально иначе я бы не смог спарсить страницу чтобы собрать нужны данные для отправки запроса и POST запрос на https отправляется правильно, но не получается сделать редирект по ссылке которая находится в idhttp.Response.Location, кстати ставил на форму tWebBrowser загружал в него ссылку из idhttp.Response.Location и мне показывалась страница моего авторизованного аккаунта, я думаю что ошибка именно в
url:= idhttp.Response.Location;
idhttp.HandleRedirects:= true;
idhttp.Get(url);
Ответить с цитированием
  #4  
Старый 22.02.2017, 12:43
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Тогда извиняюсь за неуместный ответ. К сожалению ничем теоретическим помочь не могу. С практической точки зрения - нужно либо смотреть Ваш исходник, либо сделать свои наброски, что уже лень.
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #5  
Старый 23.02.2017, 10:33
and.enk and.enk вне форума
Прохожий
 
Регистрация: 22.02.2017
Сообщения: 11
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию

Проблема решилась путём обновления indy
Ответить с цитированием
  #6  
Старый 24.02.2017, 20:34
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, ты бы линк на найденную версию выложил бы что-ли...
И номер версии...
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
ApxaHGe1 (24.02.2017)
  #7  
Старый 12.03.2017, 15:18
and.enk and.enk вне форума
Прохожий
 
Регистрация: 22.02.2017
Сообщения: 11
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну, ты бы линк на найденную версию выложил бы что-ли...
И номер версии...

Я не смог найти отдельно либу indy пришлось скачивать более свежую сборку "Delphi 10 Seattle"(ссылку наверно не стоит выкладывать на сборку...), делфи 2010 по сравнению с этой просто кроха...
Тут версия indy 10.6.2.5298 - всё работает на ура

Единственная загадка всё ни как не пойму, тот первый проект был создан в делфи 2010, я загрузил его в делфи 10 Seattle и инди автоматом обновилось, т.е. я без какого либо редактирования кода сразу скомпилировал приложение запустил и всё успешно сработало. (вес приложения был 3100 кб)

Чуть позже через пару дней я создал новый проект и тот же самый код перетащил в проект созданный на делфи 10 Seattle + убрал много не нужного мусора скомпилировал прогу и она стала весить 15 мб!

В чём дело из за чего такое, uses одинаковый в обоих проектах разная только icon в прогах, но не может же она столько весить)))

Может кто скажет что можно попробовать чтобы размер стал меньше? (советы типа упаковать в UPX и подобное не надо, знаю )
Ответить с цитированием
  #8  
Старый 12.03.2017, 18:47
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Debug на Release измени. Build conf.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 12.03.2017, 19:49
and.enk and.enk вне форума
Прохожий
 
Регистрация: 22.02.2017
Сообщения: 11
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
Debug на Release измени. Build conf.

Да всё ок, теперь приложение почти в 4 раз легче чем до этого

А я думаю нафига оно столько папок создало рядом с исходниками
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter