Форум: "Прочее";
Текущий архив: 2007.08.05;
Скачать: [xml.tar.bz2];
ВнизЕсть ли поддержка 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.043 c