Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Помощь с Web сервисом

Помощь с Web сервисом
Я
   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 не может распознать полученный ответ?

Другими средствами проблем с данным сервисом нет. Данные получаются.
Хотелось бы реализовать штатными средствами, хотя понимаю, что тут очень много проблем.
Уже весть форум перешерстил, находил схожие проблемы, но решения не нашел.

Был бы признателен за помощь.
   GenV
 
1 - 06.12.15 - 22:40
(0) Другими средствами тоже преобразовывал параметр к типу строке или просто строку-параметр передавал?
   Serginio1
 
2 - 06.12.15 - 23:55
Бери в руки Фиддлер и смотри результат ответа. Там может быть null.
   Serginio1
 
3 - 06.12.15 - 23:57
Если ответ не валидный пиши в службу поддержки
   DaDe
 
4 - 07.12.15 - 11:53
   DaDe
 
5 - 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";
   Serginio1
 
6 - 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");
   DaDe
 
7 - 07.12.15 - 15:01
(6) Если ты о сертификате, то он добавлен.
   Serginio1
 
8 - 07.12.15 - 15:12
(7) Нет я про Новый ЗащищенноеСоединениеOpenSSL());
   DaDe
 
9 - 07.12.15 - 17:02
(7) Результат не изменился.

Причем самое что интересное когда посылаешь
Рез=Прокси.helloWorld("123");

Ответ приходит - Hello, 123
Т.е. ответ в строковых типах он распознает, а сложных видимо нет.
   Serginio1
 
10 - 07.12.15 - 17:21
Тебе нужно посмотреть результат. Можешь посмотреть через SoapUI
   Serginio1
 
11 - 07.12.15 - 17:22
А фиддлер, что показывает?
   DaDe
 
12 - 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 запрос не хочет.
   DaDe
 
13 - 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>
   makson999
 
14 - 07.12.15 - 21:24
в винде возможно
   romix
 
15 - 07.12.15 - 21:36
Элементарные типы по идее должно воспринимать без заморочек -  можно например читать строку и парсить ее следующим этапом.
   Serginio1
 
16 - 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>
   Serginio1
 
17 - 07.12.15 - 22:03
Не совсем описание того, что ожидается
   Serginio1
 
18 - 07.12.15 - 22:10
Хотя
<part name="return" type="tns:ArrayOfCatalogResult"/>
   Serginio1
 
19 - 07.12.15 - 22:10
Попробуй через VS
   EvgeniuXP
 
20 - 07.12.15 - 23:46
сложные типы тоже легко передаются, читать нужно документацию правильно.
   DaDe
 
21 - 08.12.15 - 08:05
(19) что есть VS?

(20) дак, кто-бы спорил, ведь разработчик веб сервиса не я и мне лишь нужно получить данные.
   Serginio1
 
22 - 08.12.15 - 08:12
31 visual studio наверняка и примеры есть
v8: v8: Использование сборок .NET в 1С 7.x и 8.x
   PaulBC
 
23 - 08.12.15 - 08:16
(0) Web-сервис мерлиона не работает нормально через WSПрокси. Работает через MSSOAP.SoapClient30. Бери документацию и примеры с их сайта и смотри как сделано. И лучше использовать описание https://apitest.merlion.com/dl/mlservice3?wsdl (стиль document/literal).
   DaDe
 
24 - 08.12.15 - 08:16
(22) было такое предположение. Надо будет попробовать сегодня сделать, а то у меня уже в голове все скипело.
Просто хотелось сделать штатным средством, но видимо 1с не может правильно работать с данным сервисом. С другими проблем не возникло.
   DaDe
 
25 - 08.12.15 - 08:22
(23)Работает через MSSOAP.SoapClient30 - Это и понятно если глянуть документацию, но реализация MSSOAP.SoapClient30 как-то не очень хорошо на Srv x64 хотелось как лучше, но видимо прийдется использовать другой вариант.
Там кстати документации кот наплакал, хотя впринципе достаточно.
К сожалению с https://apitest.merlion.com/dl/mlservice3?wsdl (стиль document/literal) нет доступа к getCatalog, хотя есть описание входных данных.
   Мэс33
 
26 - 08.12.15 - 08:26
(13) Вот еще маленькая программулина для тестирования веб-сервисов:
https://storm.codeplex.com/
   PaulBC
 
27 - 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 проблем не возникало.
   DaDe
 
28 - 08.12.15 - 09:26
(26) Дак, проблема не в сервисе, ведь другое ПО с ним работает нормально. Проблема именно в 1С, ну или в соответствии конкретного wsdl стандартам 1С.

Странно что Мерлион не тестировали свой сервис wsdl с 1С при написании. В нашей стране 1С используется очень часто.

(27) Спасибо, видел в просторах инета, но такой подробной нет.
По поводу С getCatalog проблем не возникало.
У меня он видит структура входных/выходных данных, но не одну операцию он не видит, ругается - Метод объекта не обнаружен (..)
   ivant
 
29 - 25.12.15 - 20:34
День добрый.
Пока ветка еще жива - тоже интересуюсь данным веб-сервисом и тоже есть проблема.
Что встроенные средства не работают - понятно.
Хотя тут пишут, что удалось исправить схему и заработало: v8: Помощь с Web сервисом
Но я не вкуриваю как это.

В общем, пользуюсь MSSOAP.SoapClient30
Пытаюсь выполнить функцию getItems(). Туда надо передать два параметра - первый строковый, а второй массив (тип ArrayOfString)

И что-то не получается - куда копать, что курить? Я новичек в веб-сервисах, буду признателен за помощь.
   ivant
 
30 - 25.12.15 - 20:36
*уточнение:
вопрос, как передать массив? со стороквыми параметрами все понятно
 
 
   Serginio1
 
31 - 25.12.15 - 20:51
   ivant
 
32 - 26.12.15 - 17:23
Я думал, что в одном шаге от победы. А в (22) мне еще пилить и пилить.
Куда хоть копать с этим массивом? Как его правильно создать и передать?
   Serginio1
 
33 - 26.12.15 - 17:30
(32) в 22 в отличие от MSSOAP.SoapClient30 все сериализуется десериализуется автоматически.
   ivant
 
34 - 27.12.15 - 13:18
(33) добрый день.
по ссылке я скачал архив с файлами - вопрос, как это использовать? есть какая-нибудь инструкция? почитал статьи и вложенную документацию, но как начать, так и не нашел.

Что нужно сделать, чтобы можно было начать работать с вебсирвисами?

метод научного тыка не помогает(
   ivant
 
35 - 27.12.15 - 13:33
что я нашел сам - пример кода вижу тут: v8: v8: Использование сборок .NET в 1С 7.x и 8.x
но непонятно что нуужно сделать ДО.
установить Net? Какой лучше версии?
Что еще? в папке нашел исполняемый файл "РегистрацияКомСервера" - это нужно использовать? Тоже не понял как.
Что-нибудь еще?
   Serginio1
 
36 - 27.12.15 - 14:27
Там есть пример использования Вэб сервиса. Нужно скомпилировать библиотеку клиента WCF
API IE из 1с 7.7
API IE из 1с 7.7
   Serginio1
 
37 - 27.12.15 - 14:47
Почитай всю ветку. Там человек незнакомый с .Net со всем разобрался
   Serginio1
 
38 - 27.12.15 - 14:48
Плюс наверняка есть примеры на C# которые легко перенести на 1С
   PaulBC
 
39 - 29.12.15 - 02:07
(29) В SoapClient в качестве массива передается COMSafeArray:
ИДТовара = Новый COMSafeArray(КодыТовара, "VT_BSTR", КодыТовара.Количество());
где КодыТовара - массив строк.
Для передачи пустого значение создается массив из одного элемента - пустой строки.
   ivant
 
40 - 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: Параметр задан неверно.
   Serginio1
 
41 - 30.12.15 - 19:58
(40) Как кактус на вкус?
   ivant
 
42 - 30.12.15 - 22:04
(41) я думаю, что я "сам дурак" - опять что-то не так делаю, это раз.
А второе - по вашему методу я буду разбираться - вариантов-то не много. Но на это нужно время, а время будет на праздниках только - пока его нет.
   ivant
 
43 - 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;
 }
?>

тут они все параметры какой-то структурой передают, а не через запятую - может в этом дело
   ivant
 
44 - 30.12.15 - 22:53
о, разобрался!
просто оказывается надо было необязательные параметры тоже передавать
(39) огромное спасибо! :)
   Serginio1
 
45 - 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
Получить ответ и отправить в службу поддержки
   Serginio1
 
46 - 05.01.16 - 12:01
Для проведения тестов нужно распаковать архив . Татем нужно  зарегистрировать
Нужные DLL. Запускаем РегистрацияКомСервера.exe и выбираем NetObjetToIDispatch45.dll которая лежит в DLLNetObjetToIDispatch45 

Затем запускаем толстого клиента и ТестNetObjectToIDispatch.epf
   Serginio1
 
47 - 05.01.16 - 12:03
Что бы использовать сборку
Файл->Новый проект->Библиотека классов (DLL) 

Проэкт тобавить существующий элемент выбираем описание.
http://msdn.microsoft.com/ru-ru/library/vstudio/tydxdyw9(v=vs.100).aspx
   Serginio1
 
48 - 05.01.16 - 14:49
   Serginio1
 
49 - 05.01.16 - 14:51
ают они до 9 го
   Serginio1
 
50 - 05.01.16 - 14:56
Нет заработало на 
https://apitest.merlion.com/rl/mlservice3?wsdl (стиль rpc/literal)

Сейчас сделаю сборку и пример на 1С
   Serginio1
 
51 - 05.01.16 - 14:58
Хотя может и на 1С пройдет
   Serginio1
 
52 - 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
   Serginio1
 
53 - 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);


КонецПроцедуры
   Serginio1
 
54 - 05.01.16 - 20:25
Нет на getItems валится 
Невозможно преобразовать объект типа "CatalogResult[]" к типу "ItemsResult[]".
   Serginio1
 
55 - 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 ке. Можно предложить это сделать мерлионовцам

    }
   DaDe
 
56 - 06.01.16 - 18:45
(55) Че-то не совсем понял о чем речь.
   Garykom
 
57 - 06.01.16 - 18:47
(56) предлагается C# и .Net учить...
   DaDe
 
58 - 06.01.16 - 19:58
(57) Дельное замечание )
   Serginio1
 
59 - 06.01.16 - 20:05
(58) Предлагается мерлионовцам  сделать всем хорошо.
С 53 не было проблем без знания .Net?
   Serginio1
 
60 - 06.01.16 - 20:06
59+ В принципе и я могу, только пока у меня другие дела.
 
 
   DaDe
 
61 - 06.01.16 - 20:10
(59) Вопрос изначально был задан мной не совсем корректно.
Я не совсем понял, что конкретно Мерлион смогут сделать, что им предложить?

Вот в чем вопрос был.
Я прекрасно понимаю, что без знания С# и DotNet мне как бы в эту кашу не залезть за неделю и я не предлагаю чтобы кто-то за меня все сделал.
   Garykom
 
62 - 06.01.16 - 20:13
(61) даже маня через свой soap сделать, а не через 1С-ный
http://subsystems.ru/catalog/program=1404/
   DaDe
 
63 - 06.01.16 - 20:29
(62) Видел описание данного творения. Они походу с помощью python выкрутились.

Для меня так и осталась загадкой почему они не сделали формат в котором бы 1С читала бы. Ведь другие дистрибы сделали свои системы в совместимом формате.
Хотя это понятно, что им виднее, куда им до нас, простых работяг. Пускай типа контора вкладывает десятки тысяч и заказываю подобное ПО.
   Serginio1
 
64 - 06.01.16 - 20:40
(62) Вот видишь всего 25 тыр. Прописать десериализацию через автогенерацию ну часа 2 на все массивы.  А еще проще обратиться в службу поддержки MS.
Но проще заплатить.
   Serginio1
 
65 - 06.01.16 - 20:43
(63) Я так понимаю, что это ттворение на Java. И примеры у них только на PHP
   Serginio1
 
66 - 08.01.16 - 12:59
Если вместо ссылки на службу, сделать веб ссылку использующую технологию веб служб .Net FrameWork 2.0
То работает
   Serginio1
 
67 - 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, "");
   Serginio1
 
68 - 08.01.16 - 13:06
Сегодня 52 годика, да и приболел. Выложу позже
   Garykom
 
69 - 08.01.16 - 13:21
(68) неужто День Варенья?
и поправки здоровья успешной а то без адептов дотнета некому будет его продвигать
   Serginio1
 
70 - 08.01.16 - 13:58
Спасибо! Я адепт программирования. Просто с .Net удобнее многие задачи решать. Мне все равно на чем программировать.
Было время на мобильнике использовал C#, Tcp/Ip сервер на Delphi и клиент на 1С. Очень было прикольно переходить с одного языка на другой.
Зная 1 язык, второй изучается намного проще.
Ну и конечно нужен опыт и постоянная поддержка себя в форме. В том числе и с помощью физкультуры
   Serginio1
 
71 - 08.01.16 - 17:30
   DaDe
 
72 - 08.01.16 - 18:39
(68) Прими мои искренние поздравления и выздоравливай, а то как мы тут без тебя ;-)

Походу сейчас все больше и больше с использование dotNet пишется. Походи придётся заняться изучением.
(71) Спасибо.
   Serginio1
 
73 - 08.01.16 - 19:01
(72) Спасибо! И на здоровье
   Serginio1
 
74 - 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;
    
КонецФункции


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.