Имя: Пароль:
1C
1С v8
Пытаюсь подключиться к web-сервису Post запросом.Выдает ошибку 404
0 Ivan_495
 
11.07.19
10:01
Пытаюсь подключиться к web-сервису Post запросом.Выдает ошибку 404. Знатоки подскажите , что делаю не так?
1 Ivan_495
 
11.07.19
10:02
ИмяПользователя="";
  
  Пароль="";  

  СтрокаSOAP="<soapenv:Envelope xmlns:soapenv=""schemas.xmlsoap.org/soap/envelope/"" xmlns:urn=""urn:org.gs1ru.gs46.intf"">
|<soapenv:Header/>
|<soapenv:Body>
|<urn:GetDictionary>
|<urn:src>GS46NEW</urn:src>
|<urn:dictId>WEB_90001690</urn:dictId>
|<urn:lang>ru</urn:lang>
|<urn:noCache>0</urn:noCache>
|</urn:GetDictionary>
|</soapenv:Body>
|</soapenv:Envelope>";

  
// Описываем заголовки HTTP-запроса

Заголовки = Новый Соответствие;

Заголовки.Вставить("Content-Type", "text/xml;charset=UTF-8");
Заголовки.Вставить("SOAPAction", "http://sap.com/xi/WebService/soap1.1";);
Заголовки.Вставить("Authorization", "Basic "+ПолучитьBase64ЗаголовокАвторизации(ИмяПользователя, Пароль));  

// Подключаемся к сайту.

Соединение = Новый HTTPСоединение("srs.gs1ru.org/GS46_Interfaces/GS1RU_Operations",,ИмяПользователя, Пароль); // Адрес должен быть без https://

// Получаем текст корневой страницы через POST-запрос.

HTTPЗапрос = Новый HTTPЗапрос("/GetDictionary", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаSOAP);

Результат = Соединение.ВызватьHTTPМетод("POST", HTTPЗапрос);

  

КонецПроцедуры


Функция ПолучитьBase64ЗаголовокАвторизации(ИмяПользователя, Пароль)

    КодировкаФайла = КодировкаТекста.UTF8;
    ВременныйФайл = ПолучитьИмяВременногоФайла();
    Запись = Новый ЗаписьТекста(ВременныйФайл, КодировкаФайла);
    Запись.Записать(ИмяПользователя+":"+Пароль);
    Запись.Закрыть();

    ДвДанные = Новый ДвоичныеДанные(ВременныйФайл);
    Результат = Base64Строка(ДвДанные);
    УдалитьФайлы(ВременныйФайл);

    Результат = Сред(Результат,5);

    Возврат Результат;

КонецФункции
2 Ivan_495
 
11.07.19
10:03
Ошибка
Error 404--Not Found
>The server has not found anything matching the Request-URI.
No indication is given of whether the condition is temporary or permanent.
3 mikecool
 
11.07.19
10:19
404 это ресурс не найден, адрес в браузере открывается?
4 mikecool
 
11.07.19
10:20
встречный вопрос - откуда берутся строки soap запросов? есть какой то генератор?
5 mikecool
 
11.07.19
10:21
в соединение, имхо, надо только "корень" оставить "srs.gs1ru.org", остальную часть в запрос добавить
6 Ivan_495
 
11.07.19
11:20
исправил

Соединение = Новый HTTPСоединение("srs.gs1ru.org",,ИмяПользователя, Пароль);



HTTPЗапрос = Новый HTTPЗапрос("/GS46_Interfaces/GS1RU_Operations", Заголовки);

выдает ошибку 500  

Couldn't create SOAP message. Expecting Envelope in namespace http://schemas.xmlsoap.org/soap/envelope/, but got schemas.xmlsoap.org/soap/envelope/ </faultstring></ns0:Fault></S:Body></S:Envelope>
7 Ivan_495
 
11.07.19
11:21
да строки тестовые от интегратора
8 Ivan_495
 
11.07.19
12:04
разобрался с ошибками