|
v7: API > Mail Agent | ☑ | ||
---|---|---|---|---|
0
MegaNoise
01.01.24
✎
20:04
|
Такая история:
под обычной OS код работает ( т.е. отправляет в mail агент в бота сообщения ) RDP Server 2018 напрочь отказывается это делать HTTPxml.Send(); msxml3.dll: Ошибка поддержки безопасных каналов Подскажите пожалуйста как решить ? ТекстСообщения = "Проверка"; ТипЗапроса = "GET"; URL = "https://api.icq.net/bot/v1//messages/sendText?token=003.3439444656.2186202793:1011458761&chatId=AoLM7ppPzpDWJYEdTQ4&text=" + ТекстСообщения; HTTPxml = СоздатьОбъект("Msxml2.ServerXMLHTTP"); HTTPxml.Open(ТипЗапроса, URL, 0); HTTPxml.Send(); |
|||
1
MegaNoise
01.01.24
✎
20:10
|
св-ва Браузер :
SSL 2.0 = Вкл Использовать TLS1.2 = Вкл |
|||
2
MWWRuza
гуру
01.01.24
✎
21:29
|
(0) Карлик Вам в помощь :-)
ВК curl1c.dll. Переделать запросы с MS_XML_HTTP на нее - проблем не составит, по сути даже ничего менять не придется, только другой объект создаете. Но, должна работать под любой виндой. С httpS там проблем нет. По крайней мере, попробовать ничего не мешает, с минимальными переделками кода. |
|||
3
MegaNoise
02.01.24
✎
18:49
|
Более простое решение было таким:
OS = Server 2008r2 Идём https://curl.se/windows/ берем от туда Curl согласно разрядности и кидаем в System32 |
|||
4
MWWRuza
гуру
02.01.24
✎
22:58
|
(3) Ну, можно конечно и так... Но, насчет "простоты", я сомневаюсь.. Под curl нужно в полностью переделывать код, запускать curl через "КомандаСистемы", или "ЗапуститьПриложение", а с ВК достаточно ее загрузить и объект создать, дальше все как с MS запросами... Тем более, Ваш вариант запроса, без тела...
А... Ну, если нужно не только статус выполнения получать, а и тело ответа, то там через Приемник.Данные делается... Хоть файл, хоть строка, Тип в Приемнике задается. |
|||
5
big
03.01.24
✎
21:53
|
(0) А в "обычной ОС" какой msxml работает? Тоже 3-ей версии? Это очень древняя штуковина, может поискать способ создать объект 6-ой версии? Что типа "Msxml2.DOMDocument.6.0"
|
|||
6
MegaNoise
04.01.24
✎
14:48
|
// Хорошо, пробуем карликом
// Задача: отправить на МаилАгентБота Сообщение .. URL = "https://api.icq.net/bot/v1//messages/sendText?token=003.3439444656.2186202793:1011458761&chatId=AoLM7ppPzpDWJYEdTQ4&text=Сообщение"; Если ЗагрузитьВнешнююКомпоненту("curl1c.dll") = 1 Тогда Карлик = СоздатьОбъект("Карлик"); Сообщить("Компонента загружена", "!"); Иначе Сообщить("Компонента curl1c.dll не загружена","!"); КонецЕсли; Карлик.ВыводитьСостояние(0); Карлик.Отладка(1); Карлик.Трассировка(0); Карлик.УстановитьПараметр("TIMEOUT",30); Карлик.УстановитьПараметр("URL", URL);// Карлик.УстановитьПараметр("CUSTOMREQUEST", "GET"); Карлик.Приемник.Тип = 0; Карлик.УстановитьПараметр("HTTPHEADER", "cache-control" + ": "+ "no-cache"); Карлик.Источник.Тип = 0; Карлик.Выполнить(); // Документации по карлику нет // Что-то Выполняется но реакции нет ( что не так ? ) |
|||
7
MegaNoise
04.01.24
✎
15:13
|
Есть ли у Карлика ограничения по длине URL ?
// Максимальная длина указателя ресурсов (URL-адреса) в Microsoft Internet Explorer составляет 2083 символа |
|||
8
MWWRuza
гуру
04.01.24
✎
16:19
|
После "Выполнить()", что у Вас в Карлик.Приемник.Данные - ?
|
|||
9
MWWRuza
гуру
04.01.24
✎
16:31
|
+ к (8) и, Выполнить() - это функция.
т.е., нужно: РезЗапр = Карлик.Выполнить(); Что будет в РезЗапр - ??? Статус 200 если все ОК, или код ошибки, если что-то не так... |
|||
10
MWWRuza
гуру
04.01.24
✎
16:30
|
(6)// Документации по карлику нет
Документация - текстовик с описанием отличий, в принципе там все есть. Ну и ДемоОбработка. Там немного запутано, но можно разобраться. Насчет длины URL, ничего не скажу - это к автору, к Djelf... |
|||
11
Djelf
04.01.24
✎
16:36
|
(10) Это я не знаю, это вопрос к libcurl, у меня ограничений нет.
Ну демо-обработка слегка запутанная, есть такое немного, а как другую сделать? Предложи... |
|||
12
MWWRuza
гуру
04.01.24
✎
17:29
|
(11) Предложи...
Да нормально, все там можно разобраться, особенно с текстовиком по отличиям - по сути, там не только отличия, а и описание методов. |
|||
13
MegaNoise
04.01.24
✎
18:09
|
(9) РезЗапрос очень длинный
Это конец 0000: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload <= Recv header, 2 bytes (0x2) 0000: <= Recv data, 54 bytes (0x36) 0000: {"ok": false, "description": "Invalid UTF-8 sequence"} == Info, Connection #0 to host api.icq.net left intact 200 Ответ 200 Может причина в "Invalid UTF-8 sequence" |
|||
14
MegaNoise
04.01.24
✎
18:15
|
Лог карлика https://dropmefiles.com/aWa2q
|
|||
15
MegaNoise
04.01.24
✎
19:01
|
(8)
Источник.Тип = 0 Источник.Данные = "" Источник.Кодировка = 0 Приемник.Тип = 0 Приемник.Данные = "" Приемник.Кодировка = 0 |
|||
16
MWWRuza
гуру
04.01.24
✎
20:37
|
Ну, судя по тому, что у Вас запрос без тела, просто урл, источник можно не задавать.
А приемник? все зависит от того, что Вы хотите получить на выходе. Если просто строку, то Приемник.Данные тоже задавать не нужно - наоборот, после отработки запроса, в Данных будет содержаться строка ответа(если Тип = 0). А если хотите получить файл - то тип должен быть 1, а в Приемник.Данные нужно указать путь и имя файла, куда его нужно сохранить. Вот пример, я в соседней теме выкладывал: Процедура Сформировать() Если ЗагрузитьВнешнююКомпоненту("curl1c.dll") = 1 Тогда Карлик = СоздатьОбъект("Карлик"); Сообщить("Компонента загружена", "!"); Иначе Сообщить("Компонента curl1c.dll не загружена","!"); КонецЕсли; url = "https://markirovka.crpt.ru/api/v3/true-api/auth/key Карлик.ВыводитьСостояние(0); Карлик.Отладка(Отл); Карлик.Трассировка(Трасс); Карлик.УстановитьПараметр("TIMEOUT",30); Карлик.УстановитьПараметр("URL", url); Карлик.УстановитьПараметр("CUSTOMREQUEST", "GET"); Карлик.Приемник.Тип = 0; Карлик.УстановитьПараметр("HTTPHEADER", "cache-control" + ": "+ "no-cache"); Карлик.УстановитьПараметр("HTTPHEADER", "Accept" + ": "+ "application/json"); Карлик.Источник.Тип = 0; Рез = Карлик.Выполнить(); Сообщить("Получена пара uuid + data: " + Карлик.Приемник.Данные); КонецПроцедуры Можете скачать: https://cloud.mail.ru/public/qmGh/DrWQGrw61 и у себя попробовать. И за одно протестите с загруженной ХМЛ, для статистики. Только на какой-нибудь "маленькой" базе, так, как если "упадет", то потом переиндексация.Или просто пустую базу создайте, работает и на пустой. Без загрузки ХМЛ не падает, можно на любой пробовать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |