Имя: Пароль:
1C
 
Отправка информации используя протокол https
0 first_may
 
21.07.23
21:11
Добрый вечер..

Есть некоторый WEB сервис: https://services.test.ru/test
Тип запроса POST
АвторизацияBasic : Login : login Password: pass
Обязательный заголовок запроса: Content-Type: “application/json”



Структуру json сделал..

ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, Символы.Таб);

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);

ЗаписьJSON.ЗаписатьНачалоОбъекта();
    ...
ЗаписьJSON.ЗаписатьКонецОбъекта();

Результат      = ЗаписьJSON.Закрыть();



отправку делаю так

АдресWEBСервиса = "https://services.test.ru/test"; // тестовый

имяФайлаОтправки = ПолучитьимяВременногоФайла("txt");

ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтправки);
ЗаписьТекста.Записать(Результат);
ЗаписьТекста.Закрыть();

имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML

Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/json");

Соединение = Новый HTTPСоединение(АдресWEBСервиса);
Соединение.ОтправитьДляОбработки(имяФайлаОтправки, "addPost.php", имяВыходногоФайла, Заголовки);


// удалим файл отправки - он больше не нужен
Попытка
    УдалитьФайлы(имяФайлаОтправки);
Исключение
КонецПопытки;




в итоге в строке Соединение.ОтправитьДляОбработки
получаю ошибку
по причине:
Ошибка работы с Интернет:  Couldn't resolve host name



подскажите пож, в чем ошибка?
может я не так выполняю отправку?
1 Мультук
 
21.07.23
21:14
(0)

Готовая библиотека

https://github.com/vbondarevsky/Connector
2 Мультук
 
21.07.23
21:16
(0)

Я так понимаю оно говорит, что не может резолвить

https://services.test.ru/test"

А вот

services.test.ru

наверное может.
3 CepeLLlka
 
21.07.23
21:16
Ну вот же ошибка - Ошибка работы с Интернет:  Couldn't resolve host name

Поправьте DNSы, пропишите адрес ресурса в hosts, проверьте адрес в строке подключения
4 first_may
 
21.07.23
21:24
(2) вместо
АдресWEBСервиса = "https://services.test.ru/test"; // тестовый

написал
АдресWEBСервиса = "services.test.ru/test"; // тестовый


ошибка
по причине:
Ошибка работы с Интернет:  Превышено время ожидания



(3) Поправьте DNSы, пропишите адрес ресурса в hosts, проверьте адрес в строке подключения - попробую



(1) Готовая библиотека  -  там пример?
5 Мультук
 
21.07.23
21:36
(4)

>> (1) Готовая библиотека  -  там пример?

Ну что ты. Там голые бабы категории xxx
6 Donkey_hot
 
21.07.23
21:39
(0) Может сервис просто офигевает от того, что ему под соусом application/json подсовывают xml?
7 Donkey_hot
 
21.07.23
21:40
(0) А так, на первый взгляд, если у Вас https, то в конструкторе HTTPСоединения необходимо указать параметр ЗащищенноеСоединение, или как он там называется...
8 ДедМорроз
 
21.07.23
21:48
Для https нужно указать порт 443 и передать объект защищённого соединения ssl.
9 Garykom
 
21.07.23
22:00
(8) ssl может быть на любом порту
10 first_may
 
22.07.23
08:07
(6), (7)

ему под соусом application/json подсовывают xml    -    нет, там не xml..

то есть, я сделал структуру json, записал во временный txt, пробую передать, а ответ в виде xml

я пробовал как тут  "Передача данных на веб-сервер из 1С методом POST."
https://helpf.pro/faq/view/1298
11 Мультук
 
22.07.23
09:49
(10)

Еще раз для танкистов

Смотрим пример (пример аж 2012 года. ну да бог с ним)

// соединение с параметрами по умолчанию
Соединение = Новый HTTPСоединение("www.mysite.ru");

//Ваш код
Соединение = Новый HTTPСоединение("https://services.test.ru/test");

Нужно просто увидеть и понять разницу, особенно если вам прямо говорят "Couldn't resolve host name"

P.S.
Чисто любопытно, по моей ссылке из (1) вы сходили ?
12 Garykom
 
22.07.23
10:49
(11) какой он нафик танкист

не может понять что протокол (http:// или https://) в адресе сервера не нужен
13 Garykom
 
22.07.23
10:51
(12)+ как и путь "/test" на сервере

его надо в адрес ресурса (запроса) целиком "/test/addPost.php"
14 Donkey_hot
 
22.07.23
12:22
(12) Могу ошибаться, но кажется уже в (4) ТС решил эту часть проблемы.
15 first_may
 
22.07.23
15:09
(11) (12)  я хочу никого оскорблять, но для танкистов я так делал..

еще в (4) написал, что в вместо
АдресWEBСервиса = "https://services.test.ru/test"; // тестовый

написал
АдресWEBСервиса = "services.test.ru/test"; // тестовый


ошибка
по причине:
Ошибка работы с Интернет:  Превышено время ожидания
16 first_may
 
22.07.23
15:09
(11) (12)  я НЕ хочу никого оскорблять, но для танкистов я так делал..

еще в (4) написал, что в вместо
АдресWEBСервиса = "https://services.test.ru/test"; // тестовый

написал
АдресWEBСервиса = "services.test.ru/test"; // тестовый


ошибка
по причине:
Ошибка работы с Интернет:  Превышено время ожидания
17 first_may
 
22.07.23
15:12
вроде форум для того, что бы оказывать помощь друг другу..
я никогда такого не делал.. задача появилась впервые, поэтому с уважением тут и спросил..

я мне говорят что танкист.. хотя это не правда, я на флотский..


ладно.. а по теме, может все таки подскажите, как сделать выгрузку?
18 Смотрящий
 
22.07.23
15:36
JSONСтрока = ЗаписьJSON.Закрыть();
...

СоединениеHTTP = Новый HTTPСоединение("services.test.ru",, "login", "pass",,, Новый ЗащищенноеСоединениеOpenSSL(,));

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

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

XMLЧтение = Новый ЧтениеXML;
XMLЧтение.УстановитьСтроку(ОтветHTTP.ПолучитьТелоКакСтроку()); // Читаем данные
                        
XDTOФабрика = Новый ФабрикаXDTO;
XDTOОбъект = XDTOФабрика.ПрочитатьXML(XMLЧтение);

Чтоб не ипстись с файлами временными, крутим все на объектах
XDTOОбъект - там в отладчике посмотришь
19 first_may
 
22.07.23
18:11
(18) да, что то есть..

спс все большое..
20 first_may
 
22.07.23
18:11
дальше буду разбираться..
спс еще раз..
21 first_may
 
22.07.23
18:16
пришел ответ с сервиса

"В структуре отсутствует или не заполнено DistrID"


все.. спс.. тему можно закрыть..