Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1183717597
Nic
2007-07-06 14:26
2007.08.05
Процедура или функция в DLL


15-1183742598
wind1
2007-07-06 21:23
2007.08.05
автозагрузка флэшки


15-1183949290
Slider007
2007-07-09 06:48
2007.08.05
С днем рождения ! 9 июля 2007 понедельник


15-1183896980
@!!ex
2007-07-08 16:16
2007.08.05
Помогите улучшить решение.


6-1167194866
merko$
2006-12-27 07:47
2007.08.05
Как прочитать файл.txt на удаленном ПК





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский