Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.05;
Скачать: CL | DM;

Вниз

Есть ли поддержка https в Delphi (веб-сервис, SOAP)?   Найти похожие ветки 

 
Inco   (2007-07-09 18:49) [0]

Я уже несколько раз писал клиентов для веб-сервисов на Delphi.
Но сейчас надо сделать так, чтобы он поддерживал протокол https.
Собственно, вопрос: как можно сделать поддержку протокола https для клиента веб-сервиса с минимальными усилиями (т.е. используя то же средство импорта из wsdl, встроенное в Дельфи и пр.)?

Роясь в Интернете я нашел несколько разрозненных исходников, используя которые, можно написать все с нуля.
Но очень не хотелось бы терять ту легкость и простоту, с которой в Delphi пишется клиент для протокола http.
По опросам моих знакомых никто из них не добился в этом успеха.

Может быть здесь есть те, кто победил...


 
Sergey Masloff   (2007-07-09 20:13) [1]

Там клиент-то ничем не отличается... Что за бред.


 
alien1769 ©   (2007-07-09 20:44) [2]


> Я уже несколько раз писал клиентов для веб-сервисов на Delphi.

Не верю (с) Станиславский.

Выложи хоть один для обозрения


 
sniknik ©   (2007-07-09 22:12) [3]

> Но очень не хотелось бы терять ту легкость и простоту, с которой в Delphi пишется клиент для протокола http.
не теряй... используется тот же компонент с "добавкой" в которой прописываются параметры "залогирования".

> Может быть здесь есть те, кто победил...
есть, наверняка есть, те кто "победил"... но большинство просто пишут код, читают доки и пишут, не подозревая о какой либо борьбе...


 
Суслик ©   (2007-07-10 00:23) [4]

как всегда полезные ответы

полезно почитать до жути


 
DrPass ©   (2007-07-10 00:45) [5]


> По опросам моих знакомых никто из них не добился в этом
> успеха

Не знаю насчет твоих знакомых, но работа с сервисами по HTTPS в Delphi в общем-то ничем не отличается от HTTP. Я писал, и оно работает. В чем проблема-то... у твоих знакомых?


 
Sergey Masloff   (2007-07-10 06:26) [6]

Суслик ©   (10.07.07 00:23) [4]
Ну а что можно ответить если проблем нет там. Просто все работает ровно также по http и https. Более того у меня есть масса сервисов которые и по http и по https работают, просто защищены некоторые вызовы если их по http сделать ругнется "используйте защищенное соединение". И сам писал код для их тестирования и туча сторонних клиентов работает - и на Java и на .NET и на Delphi и фиг еще знает на чем - ну нет проблем с https (ну если не считать что MS Visual Studio через https не умеет читать wsdl опичание приходится его сначала через браузер на локальную машину сначала сохранять). И как ПОЛЕЗНО ты бы ответил на моем месте?


 
sniknik ©   (2007-07-10 08:57) [7]

> И как ПОЛЕЗНО ты бы ответил на моем месте?
он бы весьма полезно обсудил "проблему" смены подстроки "http" на "https" в url адресе...

> ну если не считать что MS Visual Studio через https не умеет читать wsdl опичание ...
а в поставке indy (/дельфи) отсутствуют используемые dll для криптования (или чего еще) о чем оно сразу и говорит стоит попытаться подключится. (какието проблемы с лицензированием, нельзя включать в поставку, но ищутся по имени и скачиваются они в 5 мин)
но это не проблемы https, это особенности конкретно используемых компонент(/классов), реализации.
а где в вопросе конкретика, или указание на чем(в том же indy 9я и 10 версии сильно различаются, в 9ке например еще надо было порт прописывать, 10ка сами подставляет)/как была попытка реализации? нету? ну на нет и суда нет. и обсуждать нечего.


 
Inco   (2007-07-10 11:50) [8]


> Sergey Masloff   (09.07.07 20:13) [1]
> Там клиент-то ничем не отличается... Что за бред.


Может быть я все слишком сложно себе представляю. Но я думаю, что простой сменой http на https в url дело не ограничивается.


> sniknik ©   (09.07.07 22:12) [3]
> не теряй... используется тот же компонент с "добавкой" в
> которой прописываются параметры "залогирования".


Вот именно эта добавка меня и интересует. Что это такое? Я так понимаю, это некая прослойка, которая используется для получения открытого ключа сервера и отсылки своего ему. Я прав?


> DrPass ©   (10.07.07 00:45) [5]
> > По опросам моих знакомых никто из них не добился в этом успеха
>
> Не знаю насчет твоих знакомых, но работа с сервисами по
> HTTPS в Delphi в общем-то ничем не отличается от HTTP. Я
> писал, и оно работает. В чем проблема-то... у твоих знакомых?
>


Ну неужто ничем? Просто меняем HTTP на HTTPS, и все?


> sniknik ©   (10.07.07 08:57) [7]
> а в поставке indy (/дельфи) отсутствуют используемые dll
> для криптования (или чего еще) о чем оно сразу и говорит
> стоит попытаться подключится. (какието проблемы с лицензированием,
>  нельзя включать в поставку, но ищутся по имени и скачиваются
> они в 5 мин)


Можно поподробнее об этих "dll для криптования"? Очень хотелось бы узнать имя, чтобы найти.


 
Плохиш ©   (2007-07-10 13:16) [9]


> Может быть я все слишком сложно себе представляю. Но я думаю,
>  что простой сменой http на https в url дело не ограничивается.

Ну а попробовать - не царское это дело?


 
sniknik ©   (2007-07-10 13:25) [10]

> Вот именно эта добавка меня и интересует. Что это такое? ...
указывается защищенный сокет (чисто для того чтобы было где логин пароль пропиать ;о))). это конечно если у тебя то о чем я. до указания конкретики, чего используется мы видимо еще не дошли... т.что треплемся дальше.

> Можно поподробнее об этих "dll для криптования"? Очень хотелось бы узнать имя, чтобы найти.
как только попробуешь следи за ошибками, в них имя и будет...
опять таки если у тебя тоже что у меня. может ты используешь компоненты не "завязанные" на dll (или на другие), тогда к чему тебе о них знать?


 
sniknik ©   (2007-07-10 13:26) [11]

пропиать = прописать


 
DrPass ©   (2007-07-10 13:42) [12]


>  поподробнее об этих "dll для криптования"?

libeay32.dll, ssleay32.dll


 
Inco   (2007-07-10 13:46) [13]


> Плохиш ©   (10.07.07 13:16) [9]
> Ну а попробовать - не царское это дело?


Естественно, пробовал, если бы получилось - не полез бы сюда.


> sniknik ©   (10.07.07 13:25) [10]
> > Вот именно эта добавка меня и интересует. Что это такое?
>  ...
> указывается защищенный сокет (чисто для того чтобы было
> где логин пароль пропиать ;о))). это конечно если у тебя
> то о чем я. до указания конкретики, чего используется мы
> видимо еще не дошли... т.что треплемся дальше.


Конкретика:

Берем wsdl, с помощью встроенного в Delphi средства генерим описание класса, подключаем его к проекту. Далее, получаем интерфейс

procedure TdmMain.InitWebService;
begin
 FServ := GetXXXService(FALSE, FServerURL);
end;

где GetXXXService - функция, сгенеренная Delphi:

function GetXXXService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): XXXService;
const
 defWSDL = "C:\xxx.wsdl";
 defURL  = "http://xxx/services/xxxService";
 defSvc  = "XXXServiceService";
 defPrt  = "XXXService";
var
 RIO: THTTPRIO;
begin
....
end;

и после этого

function TdmMain.GetSrvPkg: string;
var tmp: string;
begin
 tmp := "data";
 Result := FServ.getSrvPkg("login", "pass", tmp);
end;

и

function TdmMain.SendSrvPkg: string;
var tmp: string;
begin
 tmp:= "data";
 Result := FServ.setSrvPkg("login", "pass", tmp);
end;

Реального наполнения еще нет, пока работают заглушки.

Никаких библиотек (типа Indy) я не использую.
По http - все идет на ура, по https - не идет никак.

Куда необходимо прописать "защищенный сокет (чисто для того чтобы было где логин пароль прописать ;о)))"?


 
Плохиш ©   (2007-07-10 13:50) [14]


> По http - все идет на ура, по https - не идет никак.

Вообще-то, в первую очередь надо на сервере настраивать протокол.


 
Inco   (2007-07-10 14:07) [15]


> Плохиш ©   (10.07.07 13:50) [14]
>
> > По http - все идет на ура, по https - не идет никак.
>
> Вообще-то, в первую очередь надо на сервере настраивать
> протокол.


Т.е. это проблемы сервера?


> DrPass ©   (10.07.07 13:42) [12]
>
> >  поподробнее об этих "dll для криптования"?
>
> libeay32.dll, ssleay32.dll

Нашел, читаю...


 
DrPass ©   (2007-07-10 15:06) [16]


> Т.е. это проблемы сервера?

Скорее всего да. Во всяком случае, у меня действительно с этим проблем не возникало. Единственное "но" - возможно, SSL-сертификат потребуется установить вручную


 
Inco   (2007-07-10 15:13) [17]


> DrPass ©   (10.07.07 15:06) [16]
> Единственное "но" - возможно, SSL-сертификат потребуется установить вручную


Не подскажешь ли, где об этом можно почитать?



Страницы: 1 вся ветка

Текущий архив: 2007.08.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.027 c
2-1183727842
koha
2007-07-06 17:17
2007.08.05
Можно ли создать событие для не визуального класса?


2-1183796584
Maxoglot
2007-07-07 12:23
2007.08.05
сортировка


3-1177038704
Ken
2007-04-20 07:11
2007.08.05
Подключение к удалённой базе данных


1-1180067482
Valkyre
2007-05-25 08:31
2007.08.05
Динамическое отображения TSpeedButton


15-1183715225
mscoder
2007-07-06 13:47
2007.08.05
Вопрос по Bat-нику