|   |   | 
| 
 | Помощь с Web сервисом | ☑ | ||
|---|---|---|---|---|
| 0
    
        DaDe 06.12.15✎ 22:29 | 
        Всем доброго времени суток.
 Помогите, пожалуйста, разобраться в ситуации, а то уже мозги кипят. Есть веб сервис https://apitest.merlion.com/rl/mlservice3?wsdl При передаче созданного параметра для функции getCatalog СтроковыйТип=Прокси.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema","string"); WSПараметр=Прокси.ФабрикаXDTO.Создать(СтроковыйТип,"N1"); Рез=Прокси.getCatalog(WSПараметр); Получаю ошибку: Ошибка вызова операции сервиса: {https://apitest.merlion.com/rl/mlservice3}:MLService:getCatalog() по причине: Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: {https://apitest.merlion.com/rl/mlservice3}ArrayOfCatalogResult - [2,186] Проверка дополнительного свойства: форма: Элемент имя: item по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: {https://apitest.merlion.com/rl/mlservice3}ArrayOfCatalogResult - [2,186] Проверка дополнительного свойства: форма: Элемент имя: item по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {https://apitest.merlion.com/rl/mlservice3}ArrayOfCatalogResult В чем может быть проблема? 1C не может распознать полученный ответ? Другими средствами проблем с данным сервисом нет. Данные получаются. Хотелось бы реализовать штатными средствами, хотя понимаю, что тут очень много проблем. Уже весть форум перешерстил, находил схожие проблемы, но решения не нашел. Был бы признателен за помощь. | |||
| 1
    
        GenV 06.12.15✎ 22:40 | 
        (0) Другими средствами тоже преобразовывал параметр к типу строке или просто строку-параметр передавал?     | |||
| 2
    
        Serginio1 06.12.15✎ 23:55 | 
        Бери в руки Фиддлер и смотри результат ответа. Там может быть null.     | |||
| 3
    
        Serginio1 06.12.15✎ 23:57 | 
        Если ответ не валидный пиши в службу поддержки     | |||
| 4
    
        DaDe 07.12.15✎ 11:53 | 
        (1)
 <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><getCatalog xmlns="https://apitest.merlion.com/rl/mlservice3"><cat_id>N1</cat_id></getCatalog></soap:Body></soap:Envelope> | |||
| 5
    
        DaDe 07.12.15✎ 11:56 | 
        (2) Можешь подскажешь, установил Фиддлер, но через прокси возникает другая ошибка.
 wsdl он нормально подгружает При посылке данных Прокси.getCatalog(WSПараметр) сервер возвращает статус 500. SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://apitest.merlion.com/rl/mlservice3?wsdl' : failed to load external entity "https://apitest.merlion.com/rl/mlservice3?wsdl" | |||
| 6
    
        Serginio1 07.12.15✎ 13:56 | 
        Ключевое слово https
 ОпределениеТ=Новый WSОпределения("https://apitest.merlion.com/rl/mlservice3?wsdl "); WSСервис=ОпределениеТ.Сервисы[0]; Прокси=Новый WSПрокси(ОпределениеТ, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя,,,Новый ЗащищенноеСоединениеOpenSSL()); Рез=Прокси.getCatalog("N1"); | |||
| 7
    
        DaDe 07.12.15✎ 15:01 | 
        (6) Если ты о сертификате, то он добавлен.     | |||
| 8
    
        Serginio1 07.12.15✎ 15:12 | 
        (7) Нет я про Новый ЗащищенноеСоединениеOpenSSL());     | |||
| 9
    
        DaDe 07.12.15✎ 17:02 | 
        (7) Результат не изменился.
 Причем самое что интересное когда посылаешь Рез=Прокси.helloWorld("123"); Ответ приходит - Hello, 123 Т.е. ответ в строковых типах он распознает, а сложных видимо нет. | |||
| 10
    
        Serginio1 07.12.15✎ 17:21 | 
        Тебе нужно посмотреть результат. Можешь посмотреть через SoapUI     | |||
| 11
    
        Serginio1 07.12.15✎ 17:22 | 
        А фиддлер, что показывает?     | |||
| 12
    
        DaDe 07.12.15✎ 18:00 | 
        (10) Понял, попробую с SoapUI разобраться.
 (11) Дак с ним возникает ошибка на платформе 8.1 статус - 500 на 8.3 При создании описания сервиса произошла ошибка. https://xxxxxxx:xxxxxxx@apitest.merlion.com/rl/mlservice3?wsdl по причине: Ошибка работы с Интернет: Удаленный узел не прошел проверку Причем пробовал IEInspector, он перехватывает http,https, но эти HTTPS запрос не хочет. | |||
| 13
    
        DaDe 07.12.15✎ 21:21 | 
        SoapUI формирует запрос
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mls="https://apitest.merlion.com/rl/mlservice3"> <soapenv:Header/> <soapenv:Body> <mls:getCatalog> <cat_id>N1</cat_id> </mls:getCatalog> </soapenv:Body> </soapenv:Envelope> и в итоге получаю ответ SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apitest.merlion.com/rl/mlservice3"> <SOAP-ENV:Body> <ns1:getCatalogResponse> <return> <item> <ID>N103</ID> <ID_PARENT>N1</ID_PARENT> <Description>Аксессуары для планшетных устройств</Description> </item> <item> <ID>N101</ID> <ID_PARENT>N1</ID_PARENT> <Description>Аксессуары и опции для ноутбуков</Description> </item> <item> <ID>N100</ID> <ID_PARENT>N1</ID_PARENT> <Description>Ноутбуки</Description> </item> <item> <ID>N102</ID> <ID_PARENT>N1</ID_PARENT> <Description>Планшетные устройства</Description> </item> </return> </ns1:getCatalogResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> | |||
| 14
    
        makson999 07.12.15✎ 21:24 | 
        в винде возможно     | |||
| 15
    
        romix 07.12.15✎ 21:36 | 
        Элементарные типы по идее должно воспринимать без заморочек -  можно например читать строку и парсить ее следующим этапом.     | |||
| 16
    
        Serginio1 07.12.15✎ 22:02 | 
        Возвращает  ArrayOfCatalogResult
 -<message name="getCatalogOut"> <part name="return" type="tns:ArrayOfCatalogResult"/> </message> -<xsd:complexType name="CatalogResult"> -<xsd:all> <xsd:element name="ID" nillable="true" type="xsd:string"/> <xsd:element name="ID_PARENT" nillable="true" type="xsd:string"/> <xsd:element name="Description" nillable="true" type="xsd:string"/> </xsd:all> </xsd:complexType> -<xsd:complexType name="ArrayOfCatalogResult"> -<xsd:sequence> <xsd:element name="item" type="tns:CatalogResult" maxOccurs="unbounded" minOccurs="0"/> </xsd:sequence> </xsd:complexType> | |||
| 17
    
        Serginio1 07.12.15✎ 22:03 | 
        Не совсем описание того, что ожидается     | |||
| 18
    
        Serginio1 07.12.15✎ 22:10 | 
        Хотя 
 <part name="return" type="tns:ArrayOfCatalogResult"/> | |||
| 19
    
        Serginio1 07.12.15✎ 22:10 | 
        Попробуй через VS     | |||
| 20
    
        EvgeniuXP 07.12.15✎ 23:46 | 
        сложные типы тоже легко передаются, читать нужно документацию правильно.     | |||
| 21
    
        DaDe 08.12.15✎ 08:05 | 
        (19) что есть VS?
 (20) дак, кто-бы спорил, ведь разработчик веб сервиса не я и мне лишь нужно получить данные. | |||
| 22
    
        Serginio1 08.12.15✎ 08:12 | 
        31 visual studio наверняка и примеры есть 
 v8: v8: Использование сборок .NET в 1С 7.x и 8.x | |||
| 23
    
        PaulBC 08.12.15✎ 08:16 | 
        (0) Web-сервис мерлиона не работает нормально через WSПрокси. Работает через MSSOAP.SoapClient30. Бери документацию и примеры с их сайта и смотри как сделано. И лучше использовать описание https://apitest.merlion.com/dl/mlservice3?wsdl (стиль document/literal).     | |||
| 24
    
        DaDe 08.12.15✎ 08:16 | 
        (22) было такое предположение. Надо будет попробовать сегодня сделать, а то у меня уже в голове все скипело.
 Просто хотелось сделать штатным средством, но видимо 1с не может правильно работать с данным сервисом. С другими проблем не возникло. | |||
| 25
    
        DaDe 08.12.15✎ 08:22 | 
        (23)Работает через MSSOAP.SoapClient30 - Это и понятно если глянуть документацию, но реализация MSSOAP.SoapClient30 как-то не очень хорошо на Srv x64 хотелось как лучше, но видимо прийдется использовать другой вариант.
 Там кстати документации кот наплакал, хотя впринципе достаточно. К сожалению с https://apitest.merlion.com/dl/mlservice3?wsdl (стиль document/literal) нет доступа к getCatalog, хотя есть описание входных данных. | |||
| 26
    
        Мэс33 08.12.15✎ 08:26 | 
        (13) Вот еще маленькая программулина для тестирования веб-сервисов:
 https://storm.codeplex.com/ | |||
| 27
    
        PaulBC 08.12.15✎ 08:33 | 
        (25) По поводу Srv x64, на win server 2012 R2 помогло это: http://api.insmart.ru/download.php?file=upload/Soapsdk_install_instructions.docx
 С getCatalog проблем не возникало. | |||
| 28
    
        DaDe 08.12.15✎ 09:26 | 
        (26) Дак, проблема не в сервисе, ведь другое ПО с ним работает нормально. Проблема именно в 1С, ну или в соответствии конкретного wsdl стандартам 1С.
 Странно что Мерлион не тестировали свой сервис wsdl с 1С при написании. В нашей стране 1С используется очень часто. (27) Спасибо, видел в просторах инета, но такой подробной нет. По поводу С getCatalog проблем не возникало. У меня он видит структура входных/выходных данных, но не одну операцию он не видит, ругается - Метод объекта не обнаружен (..) | |||
| 29
    
        ivant 25.12.15✎ 20:34 | 
        День добрый.
 Пока ветка еще жива - тоже интересуюсь данным веб-сервисом и тоже есть проблема. Что встроенные средства не работают - понятно. Хотя тут пишут, что удалось исправить схему и заработало: v8: Помощь с Web сервисом Но я не вкуриваю как это. В общем, пользуюсь MSSOAP.SoapClient30 Пытаюсь выполнить функцию getItems(). Туда надо передать два параметра - первый строковый, а второй массив (тип ArrayOfString) И что-то не получается - куда копать, что курить? Я новичек в веб-сервисах, буду признателен за помощь. | |||
| 30
    
        ivant 25.12.15✎ 20:36 | 
        *уточнение:
 вопрос, как передать массив? со стороквыми параметрами все понятно | |||
| 31
    
        Serginio1 25.12.15✎ 20:51 | 
        (30) Почему не хочешь использовать (22)
 Динамическая компиляция для использования .Net событий в 1С | |||
| 32
    
        ivant 26.12.15✎ 17:23 | 
        Я думал, что в одном шаге от победы. А в (22) мне еще пилить и пилить.
 Куда хоть копать с этим массивом? Как его правильно создать и передать? | |||
| 33
    
        Serginio1 26.12.15✎ 17:30 | 
        (32) в 22 в отличие от MSSOAP.SoapClient30 все сериализуется десериализуется автоматически.     | |||
| 34
    
        ivant 27.12.15✎ 13:18 | 
        (33) добрый день. 
 по ссылке я скачал архив с файлами - вопрос, как это использовать? есть какая-нибудь инструкция? почитал статьи и вложенную документацию, но как начать, так и не нашел. Что нужно сделать, чтобы можно было начать работать с вебсирвисами? метод научного тыка не помогает( | |||
| 35
    
        ivant 27.12.15✎ 13:33 | 
        что я нашел сам - пример кода вижу тут: v8: v8: Использование сборок .NET в 1С 7.x и 8.x
 но непонятно что нуужно сделать ДО. установить Net? Какой лучше версии? Что еще? в папке нашел исполняемый файл "РегистрацияКомСервера" - это нужно использовать? Тоже не понял как. Что-нибудь еще? | |||
| 36
    
        Serginio1 27.12.15✎ 14:27 | 
        Там есть пример использования Вэб сервиса. Нужно скомпилировать библиотеку клиента WCF
 API IE из 1с 7.7 API IE из 1с 7.7 | |||
| 37
    
        Serginio1 27.12.15✎ 14:47 | 
        Почитай всю ветку. Там человек незнакомый с .Net со всем разобрался     | |||
| 38
    
        Serginio1 27.12.15✎ 14:48 | 
        Плюс наверняка есть примеры на C# которые легко перенести на 1С     | |||
| 39
    
        PaulBC 29.12.15✎ 02:07 | 
        (29) В SoapClient в качестве массива передается COMSafeArray:
 ИДТовара = Новый COMSafeArray(КодыТовара, "VT_BSTR", КодыТовара.Количество()); где КодыТовара - массив строк. Для передачи пустого значение создается массив из одного элемента - пустой строки. | |||
| 40
    
        ivant 30.12.15✎ 19:39 | 
        (39) так:
 КодыТовара = Новый Массив(); КодыТовара.Добавить(""); ИДТовара = Новый COMSafeArray(КодыТовара, "VT_BSTR", КодыТовара.Количество()); Выполнить("ТекРезультат = Клиент.getItems("N10100", ИДТовара)"); вываливается ошибка: {(1)}: Ошибка при вызове метода контекста (getItems) ТекРезультат = Клиент.getItems("N10100", ИДТовара) по причине: Произошла исключительная ситуация (Client): Client:Incorrect number of parameters supplied for SOAP request HRESULT=0x80070057: Параметр задан неверно. - Client:Unspecified client error. HRESULT=0x80070057: Параметр задан неверно. | |||
| 41
    
        Serginio1 30.12.15✎ 19:58 | 
        (40) Как кактус на вкус?     | |||
| 42
    
        ivant 30.12.15✎ 22:04 | 
        (41) я думаю, что я "сам дурак" - опять что-то не так делаю, это раз.
 А второе - по вашему методу я буду разбираться - вариантов-то не много. Но на это нужно время, а время будет на праздниках только - пока его нет. | |||
| 43
    
        ivant 30.12.15✎ 22:07 | 
        вот кстати, пример на пхп:
 <?php $wsdl_url = "https://api.merlion.com/dl/mlservice3?wsdl"; $params = array('login' => "ABC0123|MYLOGIN" , 'password' => "LIzsldhf9" , 'encoding' => "Windows-1251" , 'features' => SOAP_SINGLE_ELEMENT_ARRAYS ); try { $client = new SoapClient($wsdl_url, $params); class Request { public $cat_id; public $item_id; public $shipment_method; public $page; public $rows_on_page; public $last_time_change; } $req = new Request(); $req->cat_id = "N10008"; $req->shipment_method = "С/В"; $req->page = 2; $req->rows_on_page = 3; $req->last_time_change = "2015-01-01T11:22:33"; $items = $client->getItems($req); foreach ($items->getItemsResult->item as $row) { echo $row->No." - ".$row->Brand." - ".$row->Name."<br>"; } } catch (SoapFault $E) { echo $E->faultstring; } ?> тут они все параметры какой-то структурой передают, а не через запятую - может в этом дело | |||
| 44
    
        ivant 30.12.15✎ 22:53 | 
        о, разобрался!
 просто оказывается надо было необязательные параметры тоже передавать (39) огромное спасибо! :) | |||
| 45
    
        Serginio1 31.12.15✎ 10:24 | 
        (42) Посмотрел проблемы с этим сервисом не только в 1С
 http://stackoverflow.com/questions/34416786/soap-service-on-java-returns-incorrect-types-in-response http://opinions.merlion.com/view/?id=311 Если вышлешь логин пароль то попробую тебе помочь. Часто если сервисы на PHP используются не по стандарту. Можешь с помощью Fiddler http://www.telerik.com/fiddler Получить ответ и отправить в службу поддержки | |||
| 46
    
        Serginio1 05.01.16✎ 12:01 | 
        Для проведения тестов нужно распаковать архив . Татем нужно  зарегистрировать
 Нужные DLL. Запускаем РегистрацияКомСервера.exe и выбираем NetObjetToIDispatch45.dll которая лежит в DLLNetObjetToIDispatch45 Затем запускаем толстого клиента и ТестNetObjectToIDispatch.epf | |||
| 47
    
        Serginio1 05.01.16✎ 12:03 | 
        Что бы использовать сборку
 Файл->Новый проект->Библиотека классов (DLL) Проэкт тобавить существующий элемент выбираем описание. http://msdn.microsoft.com/ru-ru/library/vstudio/tydxdyw9(v=vs.100).aspx | |||
| 48
    
        Serginio1 05.01.16✎ 14:49 | 
        К сожалению та же ошибка как и здесь
 https://social.msdn.microsoft.com/Forums/ru-RU/7c82ef8f-2a9d-446d-bd35-51746833b428/soap-java-response?forum=aspnetru | |||
| 49
    
        Serginio1 05.01.16✎ 14:51 | 
        ают они до 9 го     | |||
| 50
    
        Serginio1 05.01.16✎ 14:56 | 
        Нет заработало на 
 https://apitest.merlion.com/rl/mlservice3?wsdl (стиль rpc/literal) Сейчас сделаю сборку и пример на 1С | |||
| 51
    
        Serginio1 05.01.16✎ 14:58 | 
        Хотя может и на 1С пройдет     | |||
| 52
    
        Serginio1 05.01.16✎ 17:14 | 
        Здесь лежит отчет http://files.rsdn.ru/19608/%d0%9c%d0%b5%d1%80%d0%bb%d0%b8%d0%be%d0%bd.zip
 внутри DLL | |||
| 53
    
        Serginio1 05.01.16✎ 18:53 | 
        Вот весь код
 &НаКлиенте Перем врап,Клиент,MLPortClient; &НаКлиенте Функция ПолучитьКлиента() BasicHttpsSecurityMode=Врап.ПолучитьТип("System.ServiceModel.BasicHttpsSecurityMode"); binding = врап.СоздатьОбъект("System.ServiceModel.BasicHttpsBinding",BasicHttpsSecurityMode.Transport); binding.Security.Transport.ClientCredentialType = Врап.ПолучитьТип("System.ServiceModel.HttpClientCredentialType").Basic; binding.MaxReceivedMessageSize = 4096000; addres = врап.СоздатьОбъект("System.ServiceModel.EndpointAddress","https://apitest.merlion.com/rl/mlservice3"); client = Врап.СоздатьОбъект(MLPortClient,binding, addres); login = client.ClientCredentials.UserName; login.UserName=Отчет.Логин; login.Password =Отчет.Пароль; return client; КонецФункции &НаКлиенте Процедура ПолучитьКаталог(Команда) // Вставить содержимое обработчика. Клиент= ПолучитьКлиента(); Сообщить(Клиент.helloWorld("Привет")); Товары= Клиент.getCatalog("N1"); Для Каждого стр из Товары Цикл Сообщить("ИД="+стр.ID); Сообщить("ИД_Родителя="+стр.ID_PARENT); Сообщить("Наименование="+стр.Description); Сообщить("==================================="); КонецЦикла КонецПроцедуры &НаСервере Функция ПолучитьМакетНаСервере() Объект1=РеквизитФормыВЗначение("Отчет"); Макет = Объект1.ПолучитьМакет("MerlionApi"); Возврат Макет; КонецФункции &НаКлиенте Процедура ПриОткрытии(Отказ) //Вставить содержимое обработчика врап=новый COMОбъект("NetObjectToIDispatch45"); Каталог=КаталогВременныхФайлов(); ФайлMerlionApi=Каталог+"MerlionApi.dll"; попытка Макет=ПолучитьМакетНаСервере(); Макет.Записать(ФайлMerlionApi); Макет=Неопределено; исключение Сообщить(ОписаниеОшибки()); конецпопытки; Сообщить(ФайлMerlionApi); MLPortClient=врап.ПолучитьТипИзСборки("MerlionApi.MerlionService.MLPortClient",ФайлMerlionApi); КонецПроцедуры | |||
| 54
    
        Serginio1 05.01.16✎ 20:25 | 
        Нет на getItems валится 
 Невозможно преобразовать объект типа "CatalogResult[]" к типу "ItemsResult[]". | |||
| 55
    
        Serginio1 06.01.16✎ 14:09 | 
        Пока не забанили. 
 Повозился ннемного с этим сервисом. Проблема в том, что wcf почему то любой массив определяет как CatalogResult[] В принципе можно вручную десериализовать public class CustomProxyFormatter : IClientMessageFormatter { public IClientMessageFormatter original; public CustomProxyFormatter(IClientMessageFormatter actual) { original = actual; } public Message SerializeRequest(MessageVersion messageVersion, object[] parameters) { return original.SerializeRequest(messageVersion, parameters); } public object DeserializeReply(Message message, object[] parameters) { // Вот здесь воткнуть нужную сериализацию учитывая //original.OperationName return original.DeserializeReply(message, parameters); } } public class CustomOperationFormatterBehavior : IOperationBehavior { public void AddBindingParameters(OperationDescription operationDescription, BindingParameterCollection bindingParameters) { } public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) { } public void Validate(OperationDescription operationDescription) { } void IOperationBehavior.ApplyClientBehavior(OperationDescription description, ClientOperation proxy) { IClientMessageFormatter currentFormatter = proxy.Formatter; proxy.Formatter = new CustomProxyFormatter(currentFormatter); } и воткнуться в client.Endpoint.Contract.Operations.Find("getItems").Behaviors.Add(new CustomOperationFormatterBehavior()); Такое решение будет работать и в 8 ке и в 7 ке. Можно предложить это сделать мерлионовцам } | |||
| 56
    
        DaDe 06.01.16✎ 18:45 | 
        (55) Че-то не совсем понял о чем речь.     | |||
| 57
    
        Garykom гуру 06.01.16✎ 18:47 | 
        (56) предлагается C# и .Net учить...     | |||
| 58
    
        DaDe 06.01.16✎ 19:58 | 
        (57) Дельное замечание )     | |||
| 59
    
        Serginio1 06.01.16✎ 20:05 | 
        (58) Предлагается мерлионовцам  сделать всем хорошо.
 С 53 не было проблем без знания .Net? | |||
| 60
    
        Serginio1 06.01.16✎ 20:06 | 
        59+ В принципе и я могу, только пока у меня другие дела.     | |||
| 61
    
        DaDe 06.01.16✎ 20:10 | 
        (59) Вопрос изначально был задан мной не совсем корректно.
 Я не совсем понял, что конкретно Мерлион смогут сделать, что им предложить? Вот в чем вопрос был. Я прекрасно понимаю, что без знания С# и DotNet мне как бы в эту кашу не залезть за неделю и я не предлагаю чтобы кто-то за меня все сделал. | |||
| 62
    
        Garykom гуру 06.01.16✎ 20:13 | 
        (61) даже маня через свой soap сделать, а не через 1С-ный
 http://subsystems.ru/catalog/program=1404/ | |||
| 63
    
        DaDe 06.01.16✎ 20:29 | 
        (62) Видел описание данного творения. Они походу с помощью python выкрутились.
 Для меня так и осталась загадкой почему они не сделали формат в котором бы 1С читала бы. Ведь другие дистрибы сделали свои системы в совместимом формате. Хотя это понятно, что им виднее, куда им до нас, простых работяг. Пускай типа контора вкладывает десятки тысяч и заказываю подобное ПО. | |||
| 64
    
        Serginio1 06.01.16✎ 20:40 | 
        (62) Вот видишь всего 25 тыр. Прописать десериализацию через автогенерацию ну часа 2 на все массивы.  А еще проще обратиться в службу поддержки MS.
 Но проще заплатить. | |||
| 65
    
        Serginio1 06.01.16✎ 20:43 | 
        (63) Я так понимаю, что это ттворение на Java. И примеры у них только на PHP     | |||
| 66
    
        Serginio1 08.01.16✎ 12:59 | 
        Если вместо ссылки на службу, сделать веб ссылку использующую технологию веб служб .Net FrameWork 2.0
 То работает | |||
| 67
    
        Serginio1 08.01.16✎ 13:06 | 
        Код такой
 var client = new WpfApplication1.com.merlion.apitest.MLService(); var myCredentials = new System.Net.NetworkCredential(Логин, Пароль); // Create a webrequest with the specified URL. var url = "https://apitest.merlion.com/rl/mlservice3"; client.Credentials = myCredentials.GetCredential(new Uri(url), "Basic"); textBox.AppendText(client.helloWorld("Привет")); var ответ = client.getCatalog("N1"); var массив = new string[] { "" }; var rz = client.getItems("N10100", массив, "", 0, 2, ""); | |||
| 68
    
        Serginio1 08.01.16✎ 13:06 | 
        Сегодня 52 годика, да и приболел. Выложу позже     | |||
| 69
    
        Garykom гуру 08.01.16✎ 13:21 | 
        (68) неужто День Варенья?
 и поправки здоровья успешной а то без адептов дотнета некому будет его продвигать | |||
| 70
    
        Serginio1 08.01.16✎ 13:58 | 
        Спасибо! Я адепт программирования. Просто с .Net удобнее многие задачи решать. Мне все равно на чем программировать.
 Было время на мобильнике использовал C#, Tcp/Ip сервер на Delphi и клиент на 1С. Очень было прикольно переходить с одного языка на другой. Зная 1 язык, второй изучается намного проще. Ну и конечно нужен опыт и постоянная поддержка себя в форме. В том числе и с помощью физкультуры | |||
| 71
    
        Serginio1 08.01.16✎ 17:30 | 
        Выложил рабочий вариает
 http://files.rsdn.ru/19608/%d0%9c%d0%b5%d1%80%d0%bb%d0%b8%d0%be%d0%bd.zip | |||
| 72
    
        DaDe 08.01.16✎ 18:39 | 
        (68) Прими мои искренние поздравления и выздоравливай, а то как мы тут без тебя ;-)
 Походу сейчас все больше и больше с использование dotNet пишется. Походи придётся заняться изучением. (71) Спасибо. | |||
| 73
    
        Serginio1 08.01.16✎ 19:01 | 
        (72) Спасибо! И на здоровье     | |||
| 74
    
        Serginio1 09.01.16✎ 09:08 | 
        Да нужно добавить client.PreAuthenticate = true;
 что бы при каждом вызове добавлялся Authorization: Basic Без него сначала вызов идет без Authorization: Basic получив код 401 добавляет его &НаКлиенте Функция ПолучитьКлиента() myCredentials = Врап.СоздатьОбъект("System.Net.NetworkCredential","TC0021232|API", "123456"); url = "https://apitest.merlion.com/rl/mlservice3"; client = Врап.СоздатьОбъект(MLPortClient); client.Credentials = myCredentials.GetCredential(Врап.СоздатьОбъект("System.Uri",url), "Basic"); client.PreAuthenticate = true; return client; КонецФункции | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |