Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > работа с https


Автор: PROme 25.2.2005, 17:57
Помогите по саюжу!
На форуме ничего не нашел smile
Нужно отправлять ПОСТом и ГЕТом данные по https и получать выдачу сервера...
Как это можно организовать???
+ разумеется, там нужна авторизация и все такое smile

Автор: _hunter 25.2.2005, 18:09
справка по TIdHTTP. последний абзац:
Цитата
Assign an instance of TIdConnectionInterceptOpenSSL to the Intercept property to allow use of the HTTPS protocol. For the Windows platform, you must install the Indy OpenSSL support .DLL's available at http://www.intelicom.si  to enable Secure Socket Layer support.

Автор: Snowy 25.2.2005, 18:16
Ставим обработчик TIdSSLIOHandlerSocket на IdHttp и меняем порт на 443.
По-моему должно так работать...
Добавлено @ 18:16
Ой, пока перезагружался, уже ответили... Извиняюсь...

Автор: PROme 25.2.2005, 20:36
_hunter спасибо, я это уже читал где-то на форуме...
а пример нельзя?
я только вот пару дней как снова начал работать с делфи после трех летнего перерыва
к тому же такого никогда не делал smile

Автор: _hunter 25.2.2005, 20:40
объект создать можеш?
создай один типа TIdConnectionInterceptOpenSSL
второй TIdHTTP
потом свойству Intercept второго ( TIdHTTP ) присваиваеш первый. все.

Автор: PROme 26.2.2005, 19:32
_hunter спасибо, уже ясней
осталось только узнать де найти этот TIdConnectionInterceptOpenSSL smile
в Делфи 7 я его не нашел smile

Автор: _hunter 27.2.2005, 00:59
видать плохо искал: юнит IdSSLOpenSSL или закладка Indy Misc

Автор: PROme 27.2.2005, 16:56
_hunter странно, юнит такой есть, а компонента на закладке Indy Misc нет smile
че делать???

Автор: Snowy 27.2.2005, 17:35
Палитра Indy I/O Handlers, последний значек (с замочком).

Автор: PROme 27.2.2005, 19:56
Цитата
последний значек (с замочком)

туда я сразу заглядывал
у меня их там только 6 штук
последний (с замочком) - IdSSLIOHandlerSocket smile

Автор: Snowy 27.2.2005, 20:13
Ну так он тебе и нужен.

Автор: PROme 27.2.2005, 20:45
ну тогда так как говорил _hunter сделать не выйдет
он и другой компонент упоминал и не появляется ничего в свойстве Intercept второго ( TIdHTTP ) (если указать вручную - тут же выдает ошибку)... smile

Автор: _hunter 28.2.2005, 00:05
щас гланул в делфях -- нужно IOHandler назначать

Автор: Snowy 28.2.2005, 08:27
Цитата(Snowy @ 27.2.2005, 17:35)
Палитра Indy I/O Handlers

Цитата(PROme @ 27.2.2005, 20:45)
не появляется ничего в свойстве Intercept второго

Правильно. Intercept и не появится. Закладка-то называется IOHandlers.
Вот IOHandler и нужно назначать smile

Автор: PROme 28.2.2005, 12:49
точна! smile
но вы очень сильно ошибались, если думали что так быстро от меня отделаетесь smile
при попытке использования вылазит такой еррор: http://docs.com.ru/add/pic/err.png (6кб)
де берется эта самая библеотека и надо ли ее куда-нить прописывать?
заранее спасибо smile

Автор: Snowy 28.2.2005, 13:06
Вот. Читай, качай, пользуйся.
http://community.borland.com/article/0,1410,31279,00.html
Добавлено @ 13:08
Цитирую, на случай, если страничка вдруг убежит
Цитата

Error 'Could Not Load SSL Library' when using Indy SSL components - by Borland Developer Support Staff

Abstract: explains why the SSL libraries are not included with Indy and where to obtain the missing dll's

Problem:
When using the Indy SSL components, an error 'Could Not Load SSL Library' is raised.


Answer:
This error is raised because you must have OpenSSL installed on your machine in order to use the IndySSL components. At runtime, Indy attempts to load libeay32.dll and ssleay32.dll. Due to restrictions on exporting SSL technology, these .dll's are not distributed along with Indy. Please review Indy's SSL site for information on where you can obtain the OpenSSL .dll's.
http://www.indyproject.org/ssl.html

Переводить нуно?
Для использования SSL нужно скачать файлы библиотек с сайта Indy.

Автор: Александра 28.2.2005, 13:20
PROme
длл'ки посмотри: http://www.indyproject.org/SSL.iwp
Добавлено @ 13:21
эх... не успела, не увидела 2 странички )) Snowy опять опередил ))

Автор: PROme 28.2.2005, 13:50
smile
пасибки!
раздобыл libeay32.dll и ssleay32.dll
а че с ними делать?
помню для mysql когда-то прописывал их прям в параметре компонента
а с этими... некуда smile
копировал в папку с проектом, в вин, в либ... в системс32 винды... ничего smile не видит их делфи smile
че делать? спасайтеее smile

Автор: Snowy 28.2.2005, 15:19
Нет, тут прописывать ничего не нужно.
Сейчас расковырял индийский код - там библиотеки грузятся автоматом при коннекте к хосту.
Значит закинь их System32. Видимо твой проект их просто не видит.
dll-ки тупо грузятся, как обычные dll.

Автор: PROme 28.2.2005, 15:59
smile smile smile
в System32 сразу закидывал
закинул только что еще в системс, в саму виндовс, в корень диска, тупо в каждую папку делфи...
результата ноль smile smile

Автор: Snowy 28.2.2005, 16:27
А ошибка все та же выскакивает?
Мне просто не на чем проверить https.
Если что наковыряю, то расскажу. Инет полон вопросов, но нет ответов.
Вот в закромах гугеля нашел дохлую страничку. Попробуй такой код:
Код

var
 SSLIO: TidSSLIOHandlerSocket;
 ProxyUse,ProxyAuth,UseSSL: boolean;
 body: string;
 HTTP: TIdHTTP;
 THURL: string;
begin
 ProxyUse := true;
 ProxyAuth := true;
 UseSSL := true;
 THURL := 'https://www.somesecuresite.com';

 Http := TIdHTTP.Create(nil);
 Http.Request.Username := 'UserName';
 Http.Request.Password := 'Password';
 if ProxyUse then begin
   http.ProxyParams.ProxyServer := '192.168.0.1';
   http.ProxyParams.ProxyPort := 3128;

   if ProxyAuth then begin
     http.ProxyParams.ProxyUsername := 'Username';
     http.ProxyParams.ProxyPassword := 'Password';
   end;
 end;

 try
   Http.HTTPOptions := [hoInProcessAuth];
   Http.HandleRedirects := true;
   Http.AuthRetries := 1; //you should not need more
   if UseSSL then begin
     SSLIO := TidSSLIOHandlerSocket.Create(Http);
     Http.IOHandler := SSLIO;
     SSLIO.SSLOptions.Method := sslvTLSv1; // or sslvSSLv23 (version 2 or 3 auto)
     // if you are using ssl then you can use basic authentication as it will be encrypted.
     // in fact you have to because by default idhttp uses non basic and SSL breaks it.
     Http.Request.BasicAuthentication := true;
   end;
   body := Http.Get(THURL);
 finally
   if http.ResponseCode = 401 then
   showmessage('Authorisation required!');
   if UseSSL then SSLIO.Free;
   Http.Free;
 end;
end;

Автор: _hunter 28.2.2005, 16:38
нет. кидать нужно именно в папку программы ( сам раз напоролся ) + инди очень чувствителен к этим либам ( точно такие же от OpenSSL не подошли )
попробуй http://www.i.com.ua/~hunter_/ssl.rar качнуть

а с самим SSL' ем косяков вроде не было ( разве что InterceptEnabled установи )

Автор: PROme 28.2.2005, 16:46
урря!!!
всем огромное спасибо smile
_hunter - отдельное smile
конечно же и в папку с проектом кидал длл-ки... а вот твои качнул и сразу запахало smile

Автор: _hunter 28.2.2005, 16:48
всегда пожалуйста smile

Автор: Snowy 28.2.2005, 16:50
Видимо версия дельфи не подошла.
Я тут раскопал несколько констант, которые нужно добавить в старые версии дельфи, потому что они там почему-то закоментированы. Может дело в них было. Но это уже не важно.
Кстати, скажи хоть к какой версии Indy подошли эти dll-ки.
А то официальный форум закрыт, так может пригодится для потомков. smile

Автор: PROme 28.2.2005, 17:20
Snowy вопрос на засыпку? smile
понятия не имею smile

ну я смотрю вы тут отдохнули уже немного?
я тоже перекусил, ну что ж, продолжаем? smile

все круто, работает по https
но вообще все это дело делается для работа под base-64 (или как там ее?) авторизацию
в общем в разделе Request компонента idHTTP ставлю BasicAuthentification в true, прописываю пароль и юзер нейм, при попытке авторизации получаю - http://docs.com.ru/add/pic/err2.png (6кб)

у кого какие мысли?
че-то мне кажется что что-то совсем не то smile

Автор: _hunter 28.2.2005, 17:24
а что это за авторизация такая?
+ попробуй версию в 1.0 поставить

Автор: PROme 28.2.2005, 18:22
Цитата
а что это за авторизация такая?

ну, например, как тут:
http://top100.rambler.ru/cgi-top100/stats.cgi

все, проблему решил... странно, однако, почему-то не хочет работать Post...
зато Get работает и за себя и за Post smile

Автор: _hunter 28.2.2005, 18:27
не понял чем она от обычной отличается ( ну да ладно )
а то, что пост работать не хочет -- вполне нормально ( скрипт данные по методу GET ожидает )

Автор: PROme 28.2.2005, 19:06
Цитата
а то, что пост работать не хочет -- вполне нормально ( скрипт данные по методу GET ожидает )

да причем тут это?
во-первых, это не тот скрипт
во-вторых, тот какраз по Post и читает
в-третьих, даже если и не прочитал - идет просто сообщение ауторизэшт рекюред, а не недопустимый метод...

Цитата
не понял чем она от обычной отличается ( ну да ладно )

тем что идет через .хтацес
там прошисываешь, изменяется заголовок и все нормальные браузеры выдают свои формы...

а обычная - просто инпуты в хтмл форме - скрипт принимает параметры и т.д. ну более самодельная smile

Автор: _hunter 28.2.2005, 19:10
если ТОТ по POST работает до него данные доходить не должны

тогда она называется не base-64 smile

Автор: PROme 28.2.2005, 20:46
что такое ТОТ?

ну вообщем я ничего не знаю... главное что работает smile
еще раз всем спасибо smile

Автор: Strannic 14.9.2005, 17:27
Доброе время суток.
Возникла почти такая же задача: post на некий сайт и получения ответа.
Тоже начал делать на Indy, с ходу задача не поддалась, перерыл пол инета, вопросов много ответов почти нет. Вот нашел в вашей ветке ответы которые помогли человек запустить желаемое. Только я не понял в чем трабла в этом случае у меня - все время говорит "Ошибка соединения SSL"
сделал следующее:

кинул на форму IdHTTP и IdSSLIOHandlerSocket
прописал IdHTTP.IOHandler := IdSSLIOHandlerSocket
IdHTTP.Port := 443

после пытаюсь вызвать код
Memo1.Text := IdHTTP.Post('https://xxx.ru/dir', S);
где в S пересылаю данные.
в ответ - ошибка.
Подскажите, плиз.

Автор: _hunter 14.9.2005, 17:36
что за ошибка?
+ ты уверен что на том конце поддерживают ссл?

Автор: Snowy 14.9.2005, 17:39
Почитай вот этот топик:
http://forum.vingrad.ru/index.php?showtopic=63257&view=all
В самом конце итоговый код для GET запроса.
Сделай все то же самое, только с POST.
Заодно почитай по ходу решения вопроса, с какими проблемами можно столкнуться.

Автор: Strannic 14.9.2005, 18:22
"Ошибка соединения с SSL"
на том конце именно ssl.
по специфкации их протокола (того конца) мне необходимо так же передавать следующую инфу:

это я прописываю в соответствующие свойства IdHttp
Content-type: text/plain; charset=Windows-1251
Content-length: 73 - насколько я полян это длина того что я отсылаю

а из этого я делаю CustomHeaders
X-Eport-Point: 123
X-Eport-Auth: password
X-Eport-Password: 1234567890

после чего создаю TStrings с данными
"CANCEL
point=123456
id=123
checkid=123
value=3.0000QTY
account=9165556677"

и вызываю
IdHTTP1.Post('https://xxx.ru/dir', StringsData);

но тут же получаю вышеупомянутую ошибку.
самих паролей в этом соединении нет только их пароли авторизации которые у меня в CustomHeaders

спасибо за еще одну ссылку, насколько я понял то у меня отличия в том, что я не создаю вс это в динамике, а просто накидал компонент на форму. но мне кажеться дело не в этом.

P.S.: а все казалось таким бональным и простым. smile

Автор: Strannic 14.9.2005, 18:38
правда я использую dll не indy_openssl096k.zip а indy_OpenSSL096m.zip

и после переделки на динамическое создания как и ожидал ничего не изменилось.

пробывал так же и Get но результат один и тот же - "Ошибка соединения с SSL"

может кто знает какой-нить другой сайт с https? дабы проверить что сама идея работает и эта проблема сугубо с моим.

Автор: Strannic 15.9.2005, 13:53
Т.к. в итоге ничего не заработало решил искать альтернативные пути.
Если кто сталкнется с похожей проблемой - посмотрите в сторону http://www.badfan.com/delphi/tie_http_https.html
причем ему не требуеться никаких DLL и очень прост в использовании.

Автор: Snowy 15.9.2005, 14:23
Ну и как альтернативные пути? Помогло?
Тебе просто нужно было посмотреть, что у тебя в сеть идет.
Может где-то чего-то недостает или наоборот дублируется.

Автор: Strannic 15.9.2005, 15:24
Альтернатива заработала на ура. Быстро и без таскания за собой всяких там DLL.
Причем выглядело это так - бросил один компонент на форму. Прописал ему два свойства. Запустил. Получил данные. Все.
Слыхал я про нарекания на Indy, но не думал, что все так несерьезно у них. К примеру та же почта на русском языке у них не ходит не смотря на мои ковыряния в их исходниках. smile Сам пользую девятку, но говорят в десятке без изменений в лучшую сторону. Осталось только сожелать о том, что из делфи выкинули FastNet набор.

Автор: Snowy 15.9.2005, 15:36
Цитата(Strannic @ 15.9.2005, 15:24)
Слыхал я про нарекания на Indy, но не думал, что все так несерьезно у них.

Зато сумели стать стандартом.
А вообще альтернативных вариантом множество. Например ICS.
Цитата(Strannic @ 15.9.2005, 15:24)
Осталось только сожелать о том, что из делфи выкинули FastNet набор.

Его не выкинули, они просто стали платными.
Из Дельфи убран, чтобы не повышать и без того немалую стоимость пакета.
Кому нужен FastNet - покупайте ради бога...
Цитата(Strannic @ 15.9.2005, 15:24)
Альтернатива заработала на ура.

Поздравляю.
Как-нить на досуге поковыряю. Посмотрю, что за зверь.

Автор: Том 28.2.2006, 11:21
_hunter, ссылка на библиотеки не работает smile ! http://www.i.com.ua/~hunter_/ssl.rar

Дай, пожалуйста, другую, или скажи как еще их найти!

Автор: Snowy 28.2.2006, 11:26
http://www.intelicom.si/domcms.nsf/b22359a69e6184e185256d07000a3de0/8a3b424f424132d088256f4c0072c460/$FILE/indy_openssl096k.zip

http://forum.vingrad.ru/index.php?showtopic=63257&view=all

Автор: Том 28.2.2006, 11:33
Прям не знаю в чм проблема, но не работает! Вс таже ошибка ("could not load SSL library")!
!Копирую в папку с программой, в систем32 и тд, короче все то же, что и было уже!

Автор: _hunter 28.2.2006, 12:11
попробуй эту:
http://www.intelicom.si/www.nsf/2434100e396ad3f3c125705100369374/d6b8e150fe453facc1257082006fc8b9/$FILE/indy_openssl096g.zip
версию

Автор: Том 1.3.2006, 10:26
Ребят, а вот в свойстве IdConnectionInterceptOpenSSL1->KeyFile необходимо указывать файл, с помощью которого создается ключ как я понял, в Delphi наверно (IdSSLIOHandlerSocket.KeyFile). Но как его создать? Я загрузил какой-то, а при Post'е выдается ошибка "Could not load key, check password". Как бы его создать правильно? Подскажите! smile


Автор: Snowy 1.3.2006, 10:29
Если ты сервер пишешь, то у тебя должен быть свой keyfile.
Если клиента, то ничего туда грузить не нужно - ключ даст тебе сервер.

Автор: Том 1.3.2006, 10:50
ОК! Спасибо, теперь разобрался! Кстати пришлось сменить метод с sslvSSLv2 на sslvTLSv1 и все заработало! smile

Автор: N1k 1.3.2006, 10:52
Когда-то столкнулся с такой же проблемой, нужно было получать данные по HTTPs. Хотел заюзать Indy с ее openssl. А потом подумал, если винда это делает, то значит у нее это все есть. С тех пор для ssl юзаю WinImet. Ни каких сторонних библиотек таскать за собой не нужно.Примеров достаточно, например, упоминавшийся здесь TIEHTTP а также EasyNet(там вообще все супер, использование WinInet на полную силу).

зы: кстати, никогда, ни в одном проекте, не использовал Indy(ну не нравится мне эти компоненты).Если что-то нужно пишу для себя сам.

Автор: Snowy 1.3.2006, 11:10
N1k, на вкус и цвет.
У WinInet тоже есть свои противопоказания.

Цитата(N1k @ 1.3.2006, 10:52 Найти цитируемый пост)
если винда это делает, то значит у нее это все есть.
Не факт. Только, если IE настроен. А если нет...
У меня опера. IE не настроен...
IE вообще может быть вырезан из системы.

Автор: Том 9.3.2006, 10:30
Ребят, а я столкнулся вот еще с одной проблемой!

Пытаюсь передать запрос методом post со следующими параметрами:
url = "/cp/fe"
host = "dealer.e-port.ru"
port = 443

Подключил SSL. Сертификат есть. при попытке передать запрос выдаётся ошибка: "Error connecting with SSL"

По url например "https://dealer.e-port.ru/cp/oem" всё работает!

Пытаюсь передать запрос по url "https://dealer.e-port.ru/cp/fe", и получаю ошибку "412 Precondition Failed"!

Помогите кто-нибудь! smile

Автор: _hunter 9.3.2006, 11:42
что ты пытаешся передать? как запрос выглядит?
+ возьми любой сниффер и посмотри как это делает любой браузер -- сразу поймеш что не так делаеш...

Автор: Том 9.3.2006, 11:50
Вот пример:

Код

X-Eport-Auth: point=38433; card="***"; pin="***"
Content-Type: text/plain; charset=Windows-1251
X-Eport-Version: dir=1024
X-Eport-Mode: 1
Content-Lengt: 128
OPERATION
id=122
checkid=122
product=4420
value=3.0000QTY
account=9165556677


Да дело то по-моему не в запросе, а в формате адреса! Указать его наверно нужно как то по другому!

Запрос на "https://dealer.e-port.ru/cp/oem" то работает!

А вот на хост dealer.e-port.ru, урл "/cp/fe" нет! Вот беда, не пойму почему!

Автор: _hunter 9.3.2006, 11:54
если ты привел текст запроса -- он абсолютно не правильный...

Автор: Том 9.3.2006, 12:01
Так дело то не в нём! Хотя ошибки быть не должно, это стандартный запрос!

Вот пример в XML:
Код

<?xml version="1.0" ?>
<!DOCTYPE package PUBLIC "-//e-port//Eport Diler Message protocol 1.0.//EN" "http://dtd.e-port.ru/request.10.0.0dtd">
<package>
<header>
<time>09-03-2006 11:51:59</time>
<version>OEM/10.0.0</version>
<dir>123</dir>
<point>1</point>
<card>***</card>
<pin>***</pin>
</header>
<operation>
<id>123</id>
<hash>158352250</hash>
<time>09-03-2006 11:51:59</time>
<dir>123</dir>
<product>4420</product>
<account>
<value>9166854001</value>
</account>
<sum>1.0000</sum>
<total>29.90</total>
<interest>0.00</interest>
<qty>1.00</qty>
</operation>
</package>


Но дело в коннекте, так как
пост на урл "https://dealer.e-port.ru/cp/oem" обрабатывается!!!

а на хост "dealer.e-port.ru", урл "/cp/fe" нет!

Дело не в самом запросе, а в формате адреса или параметрах подключения, что я и не могу понять!

Автор: _hunter 9.3.2006, 13:11
а XML тут зачем?
+ какой он стандартный, если метод не указан? ты, похоже, под запросом что-то не то понимаеш.
++ в любом случае поставь сниффер.

Автор: Strannic 24.8.2006, 10:04
Тут про e-port был вопрос.
Вот ответ.

К приеру для получения курса валют достаточно выполнить:
Код

function TData.GetEPortRate : Boolean;

function GetFieldValue(AStr : String; AIndex : Integer) : Variant;
var j : Integer;
    s : String;
begin
  s := AStr;
  for j := 1 to AIndex do Delete(s, 1, Pos(#9, s));
  Delete(s, Pos(#9, s), Length(s));
  Result := s;
end;

var sprL : TStrings;
    s    : String;
begin
  Result := true;
  if( (E_PORT_POINT = old_E_PORT_POINT)and(RateUSD <> 0) )then Exit;
  Result := false;
  old_E_PORT_POINT := E_PORT_POINT;
  sprL := TStringList.Create;
  try
    IEHTTP.request_headers.Clear;
    IEHTTP.request_headers.Add('Content-type: text/plain; charset=Windows-1251');
    IEHTTP.request_headers.Add('Content-length: 0');
    IEHTTP.request_headers.Add('X-Eport-Auth: point='+E_PORT_POINT+'; card='+E_PORT_CARD+'; pin='+E_PORT_PIN);
    IEHTTP.ExecuteURL('https://dealer.e-port.ru/cp/dir');
    sprL.LoadFromStream(IEHTTP.result_ms);

    s := sprL[0];
    if( '+x' = Copy(s, 1, 2) )then RateUSD := GetFieldValue(s, 4);
    Result := RateUSD <> 0;
  finally
    sprL.Free;
  end;
end;



а для отправки данных
Код

function TData.SendPacked(APack : TOutParamsEPorts) : TInParamsEPorts;
begin
  Result := TStringList.Create;
  if( APack.Text = '' )then Exit;
  if( Length(APack.Text) = 3 )then APack.Text := '';
  try
    if( APack.Text = '' )then IEHTTP.postStr := ' '
      else IEHTTP.postStr := APack.Text;
    IEHTTP.request_headers.Clear;
    IEHTTP.request_headers.Add('Content-type: text/plain; charset=Windows-1251');
    IEHTTP.request_headers.Add('Content-length: ' + IntToStr(Length(IEHTTP.postStr)));
    IEHTTP.request_headers.Add('X-Eport-Auth: point='+E_PORT_POINT+'; card='+E_PORT_CARD+'; pin='+E_PORT_PIN);
    IEHTTP.ExecuteURL('https://dealer.e-port.ru/cp/fe');
    Result.LoadFromStream(IEHTTP.result_ms);
    if( IEHTTP.error <> 0 )then SendMsg('M', 'SendPacked1:'+IEHTTP.error_msg);
  except
    On E : Exception do SendMsg('M', 'SendPacked2:'+E.Message);
  end;
end;


компонетна выглядит следующим образом
Код

  object IEHTTP: TIEHTTP
    Timeout = 90
    BlockingMode = True
    RequestMethod = 'POST'
    MultipartPOST = False
    Left = 264
    Top = 120
  end


Вот в принципе и все. Пользуйтесь на здоровье.  smile 

Автор: ChaserHA 16.11.2006, 11:34
Кто-нибудь работал с MoneyMail или с E-Gold по HTTPS?
Что-то не получается получить оттуда данные (например запросу текущего по балланса с MoneyMail или проверка балланса на E-Gold).
Если у кого есть примеры работы с системами, прошу ответить, очень срочно требуется, ибо у меня что-то никак не выходит, хотя по идее делаю все правильно.

Автор: familiar 13.6.2007, 22:02
Народ, помогите ламеру smile ... есть сайт... на котором формочка в которую нужно ввести номер и получить HTML страницу с информацией по этому номеру.... всё это по https с сертификатом... помогите оформить получение страницы с информацией на delphi, если формочка выглядит так:

</SCRIPT>
      <FONT color=#ff0000></FONT>
      <TABLE border=0>
        <TBODY>

        <TR>
          <TD vAlign=top align=left width=685>
            <DIV align=left><STRONG>Поиск абонента</STRONG></DIV>
            <FORM name=searchForm action=/searchDealer.do method=post>
            <P><EM><FONT color=#000099>Параметр поиска:</FONT></EM> <INPUT 
            name=parameter></P>
            <P><EM><FONT color=#000099>Тип параметра</FONT></EM> <INPUT 
            type=radio CHECKED value=1 name=parameterType>Телефон</P><INPUT type=submit value="Найти контракт"> 
            </FORM>

            <script language=JavaScript type=text/javascript>
  <!--
  var focusControl = document.forms["searchForm"].elements["parameter"];

  if (focusControl.type != "hidden" && !focusControl.disabled) {
     focusControl.focus();
  }
  // -->
</SCRIPT>


 smile 
С МЕНЯ ПИВО!!!!

Автор: Sanchezzz 14.6.2007, 22:37
пиши в асю кажется я знаю как это реализовать.... 368619020

Автор: s_arty 20.11.2007, 13:16
Народ, помогите, пожалуйста, кто-нибудь работал с Метатрейдером 4 от MetaQuotes по HTTPS  ?
А то как-то совсем надоело использовать их внутренний мега_Си_подобный язык... smile
Может у кого есть исходники иль на худой конец описание протокола  smile 

Автор: Aly 24.1.2008, 15:07
Всем доброго времени суток smile
Все про соединение по htpps было понятно на Delphi 7, но при переносе на Delphi 2007 при первом соединении выкидывает ошибку exception class EIReadTimeout whith message 'Read Timeout'. А дальше работает гладко. 
Фактически отпраляется 2 запроса на сервер (проверено), но ответ получается только на 2ой.
Хелп, плиз smile 

Автор: Snowy 24.1.2008, 15:23
Aly, я тебе точно могу сказать - у тебя в программе что-то не так.
Чтобы работало правильно, нужно это исправить и будет работать нормально.

Автор: MetalFan 24.1.2008, 15:27
ну и? ReadTimeout. увеличь и будет тебе счастье

Автор: Aly 24.1.2008, 15:27
procedure TForm1.Button1Click(Sender: TObject);
  var Stream: TMemoryStream;
begin
Stream:= TMemoryStream.Create;
url:=url0+'USERNAME='+login+'&&PASSWORD='+pass+'&&ACT='+act;

IdHTTP.Get(URL,Stream);
Stream.SaveToFile(fname);
Stream.Free;


Если не сложно ткните носом, плиз

Добавлено @ 15:28
Таймаут  на 1000000 тоже мало smile

Автор: Aly 7.2.2008, 12:35
Помогите чайнику, как сделать чтобы если сервер к которому общаешься недоступен в данный момент отложить на какое-то время соединение.
Pleace!

Автор: alexnov 17.3.2008, 15:09
Всем Привет! Пишу прогу проверки баланса на  https://onyma.radnet.ru. Нужно туда ввести имя и пароль и получить скока денег осталось.
Начал писать в Делфи на indy + openssl. Пишу такое в первый раз, поэтому помогите плиз! Очень интересно, но знаний кое-каких нехватает. Поставил на форму IdHTTP, порт 443, IdSSLIOHandlerSocket1, sslvTLSv1. 
procedure TForm1.Button1Click(Sender: TObject);
var lData: TStringList;
    HTTP: TIdHttp;
    s: string;
    i:integer;

begin
  lData := TStringList.Create;
  try
    lData.Add('LOGIN=***');
    lData.Add('PASSWD=***');

    s:=IdHTTP1.Post('https://onyma.radnet.ru/', lData);                               / /*****
  finally
    lData.Free;
  end;


  memo1.Clear;
  http:=TIdHTTP.Create(nil);
  try
    s:=http.Get('https://onyma.radnet.ru/');
  except
    ShowMessage('No connect with server.');
    Exit;
  end;
  memo1.Lines.Add(s);
  http.Free;



Прога выдает No connect with server. В чем тут дело? Мне надо получить страничку ту которая появляется после ввода логина и пароля.

Добавлено через 3 минуты и 16 секунд
Всем Привет! Пишу прогу проверки баланса на  https://onyma.radnet.ru. Нужно туда ввести имя и пароль и получить скока денег осталось.
Начал писать в Делфи на indy + openssl. Пишу такое в первый раз, поэтому помогите плиз! Очень интересно, но знаний кое-каких нехватает. Поставил на форму IdHTTP, порт 443, IdSSLIOHandlerSocket1, sslvTLSv1. 
procedure TForm1.Button1Click(Sender: TObject);
var lData: TStringList;
    HTTP: TIdHttp;
    s: string;
    i:integer;

begin
  lData := TStringList.Create;
  try
    lData.Add('LOGIN=novikov');
    lData.Add('PASSWD=77605');

    s:=IdHTTP1.Post('https://onyma.radnet.ru/', lData);                               / /*****
  finally
    lData.Free;
  end;


  memo1.Clear;
  http:=TIdHTTP.Create(nil);
  try
    s:=http.Get('https://onyma.radnet.ru/');
  except
    ShowMessage('No c

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)