|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста как создавать метод для получение инф через SOAP-клиент? вот пример в %Net.HttpRequest, нужен аналогично....Method request(method, url) { new httprequest set httprequest = ##class(%Net.HttpRequest).%New() set httprequest.Server = ..SERVER set httprequest.Port = ..PORT set httprequest.ContentType = "application/json" D httprequest.SetHeader("Accept","application/json") D httprequest.InsertFormData("grant_type","password") D httprequest.InsertFormData("username",..USER) D httprequest.InsertFormData("password",..PWD) D httprequest.InsertFormData("scope","profile") do httprequest.Send(method, ulr) new size set size = httprequest.HttpResponse.Data.Size new response set response = httprequest.HttpResponse.Data.Read(size) quit response } ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2015, 15:01 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
Вы имеете ввиду, что вам нужно просто обратиться к стороннему SOAP-серверу ? можете импортировать их WSDL, и запускайте сгенерированные методы Документация ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2015, 16:12 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
DAiMorВы имеете ввиду, что вам нужно просто обратиться к стороннему SOAP-серверу ? можете импортировать их WSDL, и запускайте сгенерированные методы Документация Не удается импортировать, есть пример для импортирования (SOAP-Webserver, cache -webclient) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 07:47 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
Есть какие то ошибки при импортировании ? есть возможность выложить или прислать WSDL файл, если не секретный ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 09:05 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
DAiMor, У меня есть только URL веб-сервиса (может быть NAMESPACE) и несколько URL SOAP-action. не мог найти нормальный гайд по SOAP webclient. Можешь показать пример по request SOAP? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 12:20 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
DAiMorЕсть какие то ошибки при импортировании ? есть возможность выложить или прислать WSDL файл, если не секретный ?могу толлько JAVA код (Рабочий) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 12:35 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
lfktkпоказать пример 1) на основе WSDL генерируется набор классов реализующих веб-клиента (см. документацию, ссылку ранее дал DAiMor) 2) пользуешься сгенерированными классами lfktk" http://xxx.xx.xx.xx:xxxx/IXXXEServiceDirectoryService.asmx"; У сервиса нет описания? Откуда тогда получили информацию о SOAP-action? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 12:46 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
Значит вам можно собрать такой класс вручную, вот напримерClass LetografWebService.LetografWebServiceSoap Extends %SOAP.WebClient [ ProcedureBlock ] { /// This is the URL used to access the web service. Parameter LOCATION = " http://localhost/letograf/WebService.Base.cls" ; /// This is the namespace used by the Service Parameter NAMESPACE = " http://www.letograf.ru/2009/ws/" ; /// Use xsi:type attribute for literal types. Parameter OUTPUTTYPEATTRIBUTE = 1; /// Determines handling of Security header. Parameter SECURITYIN = "ALLOW"; /// This is the name of the Service Parameter SERVICENAME = "LetografWebService"; /// This is the SOAP version supported by the service. Parameter SOAPVERSION = 1.1; Method Connect(Login As %String, Password As %String) As %String [ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ] { Quit ..WebMethod("Connect").Invoke($this," http://www.letograf.ru/2009/ws//WebService.Base.Connect" ,.Login,.Password) } }далее работать можно такset soap=##class(LetografWebService.LetografWebServiceSoap).%New() set sessionId=soap.Connect(login,pass)собственно и все я этот пример сгенерировал на основе своего же веб-сервиса, и на основе своего WSDL, который Cache сам генерирует ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 12:48 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
DAiMor, А можно сделать так? => Class Myclass Extends %Library.RegisteredObject [ Not ProcedureBlock ] { Method getSoapMsg(url, soapaction) { set soap=##class(LetografWebService.LetografWebServiceSoap).%New() set sessionId=soap.Connect(login,pass) ............. quit res } } ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 13:02 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
lfktkDAiMor, А можно сделать так? => Class Myclass Extends %Library.RegisteredObject [ Not ProcedureBlock ] { Method getSoapMsg(url, soapaction) { set soap=##class(LetografWebService.LetografWebServiceSoap).%New() set sessionId=soap.Connect(login,pass) ............. quit res } } А чем вас не устроило, собрать класс с отдельным методом для каждого soapaction, как я показал у вас же они насколько я понимаю статичные ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 13:09 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
DAiMorlfktkDAiMor, А можно сделать так? => Class Myclass Extends %Library.RegisteredObject [ Not ProcedureBlock ] { Method getSoapMsg(url, soapaction) { set soap=##class(LetografWebService.LetografWebServiceSoap).%New() set sessionId=soap.Connect(login,pass) ............. quit res } } А чем вас не устроило, собрать класс с отдельным методом для каждого soapaction, как я показал у вас же они насколько я понимаю статичныеЯ понял, просто не хотел создавать личный класс. спасибо за помощь , попробую.... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 13:15 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
lfktk, А вы пробовали открыть URL добавив к нему wsdl? http://xxx.xx.xx.xx:xxxx/IXXXEServiceDirectoryService.asmx?wsdl Может он WSDL отдаст. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 13:50 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
Александр Кобловlfktk, А вы пробовали открыть URL добавив к нему wsdl? http://xxx.xx.xx.xx:xxxx/IXXXEServiceDirectoryService.asmx?wsdl Может он WSDL отдаст. не открывает( без логин/пароль, только 2 URL, первый это URL веб-сервиса, второй это SOAP-action. вы можете переделат мой JAVA код под CACHÉ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 14:41 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
DAiMorЗначит вам можно собрать такой класс вручную, вот напримерClass LetografWebService.LetografWebServiceSoap Extends %SOAP.WebClient [ ProcedureBlock ] { /// This is the URL used to access the web service. Parameter LOCATION = " http://localhost/letograf/WebService.Base.cls" ; /// This is the namespace used by the Service Parameter NAMESPACE = " http://www.letograf.ru/2009/ws/" ; /// Use xsi:type attribute for literal types. Parameter OUTPUTTYPEATTRIBUTE = 1; /// Determines handling of Security header. Parameter SECURITYIN = "ALLOW"; /// This is the name of the Service Parameter SERVICENAME = "LetografWebService"; /// This is the SOAP version supported by the service. Parameter SOAPVERSION = 1.1; Method Connect(Login As %String, Password As %String) As %String [ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ] { Quit ..WebMethod("Connect").Invoke($this," http://www.letograf.ru/2009/ws//WebService.Base.Connect" ,.Login,.Password) } } set sessionId=soap.Connect(login,pass)собственно и все я этот пример сгенерировал на основе своего же веб-сервиса, и на основе своего WSDL, который Cache сам генерируетошибка: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 14:45 |
|
SOAP запроса внутри USER class-a
|
|||
---|---|---|---|
#18+
lfktkошибка: Код: sql 1.
Не хватает самой ошибки в треугольных скобках И какая у вас версия Caché ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2015, 14:52 |
|
|
start [/forum/topic.php?fid=39&msg=39045429&tid=1556596]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 412ms |
0 / 0 |