|   |   | 
| 
 | 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 и у себя попробовать. И за одно протестите с загруженной ХМЛ, для статистики. Только на какой-нибудь "маленькой" базе, так, как если "упадет", то потом переиндексация.Или просто пустую базу создайте, работает и на пустой. Без загрузки ХМЛ не падает, можно на любой пробовать. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |