|
Помощь с 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:[email protected]/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; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |