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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2013, 01:38   #1
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию Connection Closed Gracefully

Здравствуйте, джентельмены.

Дело такое: начал делать программу для одного сайта, нужно мне было авторизоваться, но почему-то, во-первых, при первом обращении к https писало couldn't load ssl library, на второй раз - всё ОК, ну и после любого запроса (GET/POST) при закрытии программы была ошибка Runtime 216, в итоге решил, что, возможно, поможет обновление Indy (хотя и стояла 10, всё равно попробовал).

Обновил, в итоге ошибок с Runtime и couldn't load ssl library нет, но теперь всегда при обращении к сайту выдаёт Connection Closed Gracefully.

Код незамысловатый, прилагаю:

Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  fibo_url = 'https://mtclient.fibo.ru/';
var
  Stream: TStringStream;
  PostData: TStringList;
begin
  Stream := TStringStream.Create('');
  PostData := TStringList.Create;
  try
    PostData.Add('login=login');
    PostData.Add('password=password');
    idhttp1.Get(fibo_url, Stream);
    idhttp1.Post(fibo_url, PostData, Stream);
    Memo1.Text := Utf8Toansi(Stream.DataString);
  finally
    Stream.Free;
    PostData.Free;
    end;
end;
Вообще не понимаю, чего он от меня хочет
KoBaL вне форума Ответить с цитированием
Старый 15.07.2013, 01:48   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Забыли SSL'ие DLL скомпилировать и в папку с вашим ПО положить.
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2013, 01:49   #3
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Забыли SSL'ие DLL скомпилировать и в папку с вашим ПО положить.
Они и без того лежат, без них бы вообще запрос не пытался даже отправляться, разве нет?

Да и С++ у меня нет, даже не знаю, как это всё в архивах скомпилировать

Последний раз редактировалось KoBaL; 15.07.2013 в 01:53.
KoBaL вне форума Ответить с цитированием
Старый 15.07.2013, 02:01   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

может кроме логина и пароля там ещё параметры идут?
Fiddlerом смотрите трафик браузера, он умеет и SSL расшифровывать.
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2013, 02:03   #5
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
может кроме логина и пароля там ещё параметры идут?
Fiddlerом смотрите трафик браузера, он умеет и SSL расшифровывать.
Там ничего больше не идёт, можете сами посмотреть.

Когда стояла Indy 10, но чуть-чуть помладше, были две другие ошибки, но запросы отлично отправлялись и без ошибок, решил обновится, чтобы решить эти две проблемы - теперь выдаёт вот это.

Проблема явно не в том, что я параметры не все передаю.

P.s. Если можете - скомпилируйте мне последние версии этих двух DLL, может, действительно, поможет?



//Update

Скачал 1.0.1 - результат тот же самый, ничего не изменилось. Ума не приложу, чего она от меня хочет.

Последний раз редактировалось KoBaL; 15.07.2013 в 02:17.
KoBaL вне форума Ответить с цитированием
Старый 15.07.2013, 02:16   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Там ничего больше не идёт, можете сами посмотреть.
Ошибка Connection Closed Gracefully возникает на стороне сервера т.к. вы ему не правильные данные кидаете, и вас шлют по адресу 0xFFFFFFFF далеко и на долго.

Причин закрыть более чем достаточно и ещё чуть-чуть.
Цитата:
If the l_onoff member of the LINGER structure is zero on a stream socket, the closesocket call will return immediately and does not receive WSAEWOULDBLOCK whether the socket is blocking or nonblocking. However, any data queued for transmission will be sent, if possible, before the underlying socket is closed. This is also called a graceful disconnect or close. In this case, the Windows Sockets provider cannot release the socket and other resources for an arbitrary period, thus affecting applications that expect to use all available sockets. This is the default behavior for a socket.
Open SSLие либы я уже когда-то компилировал.
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2013, 02:22   #7
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ошибка Connection Closed Gracefully возникает на стороне сервера т.к. вы ему не правильные данные кидаете, и вас шлют по адресу 0xFFFFFFFF далеко и на долго.

Причин закрыть более чем достаточно и ещё чуть-чуть.


Open SSLие либы я уже когда-то компилировал.

Почему, в таком случае, с прошлой Indy было всё в порядке?
Поставил с вашего сайта SSL, первая попытка - Coudn't load ssl library, вторая - Connection Closed Gracefully
KoBaL вне форума Ответить с цитированием
Старый 15.07.2013, 02:24   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Поставил с вашего сайта SSL, первая попытка - Couldn't load ssl library, вторая - Connection Closed Gracefully
Тут x2 варианта:
1. Обновить INDY и повторить.
2. Попробовать другие компоненты/классы. Synapse, Overbyte ICS и т.д.
3. Ещё раз подумать о том, правильно ли все подключено. Для работы с SSL библиотек мало, надо сертификат и ключ иметь, это же SSL как-никак.
4. Проверить все ли действительно отправляется.
Человек_Борща вне форума Ответить с цитированием
Старый 15.07.2013, 02:28   #9
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Тут x2 варианта:
1. Обновить INDY и повторить.
2. Попробовать другие компоненты/классы. Synapse, Overbyte ICS и т.д.
3. Ещё раз подумать о том, правильно ли все подключено. Для работы с SSL библиотек мало, надо сертификат и ключ иметь, это же SSL как-никак.
4. Проверить все ли действительно отправляется.
HTTP Analyzer видит запрос из моей программы и даже показывает ответ, причем правильный, тоесть в response content обычный ответ от сайта, единственный вопрос - почему я не могу его получить в своей программе?
KoBaL вне форума Ответить с цитированием
Старый 15.07.2013, 02:31   #10
KoBaL
Пользователь
 
Аватар для KoBaL
 
Регистрация: 27.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Тут x2 варианта:
1. Обновить INDY и повторить.
2. Попробовать другие компоненты/классы. Synapse, Overbyte ICS и т.д.
3. Ещё раз подумать о том, правильно ли все подключено. Для работы с SSL библиотек мало, надо сертификат и ключ иметь, это же SSL как-никак.
4. Проверить все ли действительно отправляется.
1. Indy и так последняя стоит.
2. В других компонентах не разбираюсь и не очень то и хочу на них пересаживаться.
3. Всё правильно подключено, раньше же всё работало?
4. Всё действительно отправляется, HTTP Analyzer ловит и показывает всё просто отлично.
KoBaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Indy]Прокси с авторизацией, Connection Closed Gracefully bakanaev Общие вопросы Delphi 4 19.05.2013 17:42
Connection Closed Gracefully. idhttp jone Работа с сетью в Delphi 0 28.08.2011 15:44
connection closed gracefully foma9999 Общие вопросы Delphi 21 14.02.2011 16:15
Ошибка, connection closed gracefully в idhttp Delphinchik Помощь студентам 0 28.08.2010 23:21
Ошибка с Indy - Connection Closed Gracefully SoulReaver Работа с сетью в Delphi 4 18.04.2009 13:29