@Paradox рад что кто то пользуется )
HTTP Client - cURL Impersonate [HTTP/2, TLS 1.3, BROWSER_PRESETS, WEBSOCKET]
-
v3.0.2:
- Исправлен вылет в скомпилированном скрипте, а именно при перезапуске (клик по этой кнопке) - если в папке модуля находилась legacy.dll
- BAS теперь не вылетает если нет moduledll.dll в папке модуля. Пишет ошибку. (beta):
[cUrl Impersonate] Module is corrupted. Please verify that moduledll.dll exists in the module directory (it may have been removed by your antivirus).
V3.0.3:
- fix краша в новой версии бас 29.2.0
- исправлен баг: в DELETE/PATCH и т.д запросах с телом запроса не добавлялся заголовок content-length, из за чего запрос был ошибочным.
V3.0.4 (current):
- Версия браузера для имитации ( поле ) поддерживает тип expression.
- Кастомные настройки теперь принимают только json, как в файле пресетов. + поддержка JS
- Установить заголовок ( экшн ) также поддерживает JS через *** #code ***
-
v3.0.5:
- Исправлен вылет в сочетании запросов POST-DELETE + GET.
- Исправлена установка заголовков через шаблон, были проблемы с \r\n
- Новый функционал: авто url encode, !, !! - префиксы перед url. 2 префикса, - 2 типа: encodeURIComponent(), URLSearchParams.toString() - тоже самое как encodeURIComponent(), только пробелы как + вместо %20
- При ошибке теперь сохраняется код ответа, контент и тд( если включено)
- POST экшн всегда добавляет заголовок Content-Length, Content-Type может быть пустым, не добавится. Если нужно отправить POST без Content-Length, используйте экшн GET. Это касается всех остальных методов.
- Добавлен отдельный checkbox для GET/POST экшенов - Set fail() on error. В настройках такой же checkbox работает глобально для всех экшенов модуля.
- Также исправлены экшены "была ли ошибка", "получить текст ошибки"
- Новый функционал: Выполнить JS после запроса, в GET/POST экшенах. Воображайте пользу :)
- Новый функционал: Сохранение настроек по дефолту для GET/POST экшенов. - checkbox перед кнопкой "OK". Требуется перезапуск BAS. (Beta)
- Немного сжал дизайн GET/POST.
- Авторизация модуля теперь отдельно от запуска /записи - выполняется при первом вызове экшена "Настройки". Подвисаний не будет.
V3.0.6:
- Новый функционал: Чекбокс для GET/POST экшена - Использовать cookies из памяти. ( для текущего запроса ) если выключено: куки не используются, новые не сохраняются .
- Изменен js callback для GET/POST экшена. Теперь их 2 - BeforeRequest, AfterRequest. Это логично.
-
v3.0.7:
- Новая технология сохранения состояния по умолчанию всех параметров для всех экшенов модуля. С защитой от перезаписи, например обновой. Настройки сохраняются в папке curlImpersonate\settings\ - не удаляйте это папку при обновлении модуля.
- Новая функция:
impersonate.wasProxy()- Отключайте запросы если не установлены прокси. Подсказка: OnBeforeRequest function + сохранение настроек по дефолту.
- Новая логика получения ответа с экшенов get/post. Теперь учитывается: ContentAsJson, ContentNotEmpty - при ошибках и повторах.
- Обновлен libcurl-x64.dll - nghttp2 до последний версии.
-
v3.0.8:
- Новая галочка: UseProxy в Get/Post
- Фикс base64 encoding ответа Get/Post
v3.0.9:
- Новая callback функция для повторов при ошибке, для смены прокси: Функция будет вызываться пока кол-во повторов меньше максимального. Отправка запросов в callback функции запрещена в целях стабильности, остальное можно.
-
v4.0.0:
- fix callback фунции при ошибке. ( Requests are not allowed in callback ) Нет запретов на вызовы / сохраняется ответы сервера ДО вызова callback.
- Новая опция: Use http/2 (Если сервер поддерживает), если выключено - http1/1
- Код кубика "Прокси" перенес в engine.js чтобы не засирал код скрипта. и т.д - куча мелких правок.
v4.0.1:
- fix HEAD
- Новая галочка перезаписывать ли куки в экшене "Загрузить куки"
- Исправлено: поле Cookies fast update command в "Загрузить куки" может принимать переменную-массив с параметрами.
- новая плюшка: При получении Error in the HTTP2 framing layer - повтор запроса внутри модуля (3попытки)
v4.0.2:
- Обновлена логика WebSocket:
-
wsSend больше не возвращает ошибок. Контроль статуса выполняется через wsRecv.
-
wsRecv: при ошибке требуется заново установить WebSocket-соединение.
Если WS_FRAME_READY == false, значит за время таймаута данные не были получены, и при необходимости нужно повторно отправить фрейм на сервер. (с соединением все ок)
-
v4.0.3:
- "Использовать cookies из памяти" - если выключена то теперь не игнорирует кастомные заголовки cookie.
- Функция BeforeRequest в callback принимает переменную с запросом. можно через js выставить параметры, хоть юрл поменять, запретить редиректы и т.д.
v4.0.4:
- Возможность установки кастомной ошибки запроса в JS Callback (AfterRequest) - логика повтора запроса будет работать, если настроена.
-
Смастерил локальный веб-сервер, предоставляющий API для выполнения исходящих HTTP-запросов с использованием имперсонации TLS/JA3 отпечатков. Может пригодится кому.
main.py impersonate_api.exe Документация.md -
v4.0.5:
- new curl 8.15.0
- new impersonate 1.2.5
- “Use http/2” в GET/POST изменен на “Use http1/1”
- Пресеты:
-Новый параметр: tls_no_padding
-Новые параметры httpversion: + support - "2n", "2o" // read _faq.txt
-Новые параметры ciphers: + support - TLS_EMPTY_RENEGOTIATION_INFO_SCSV
v4.0.6:
- Новый параметр в настройках: Уровень логирования ошибок
- Позиция content-type/length имеет приоритет в кастомных заголовках, если есть.
- появился/возвращен экшен "Статус ответа"
- Префикс [cUrl Impersonate, 4/4] теперь показывает кол-во попыток если он установлен.
- все функции объекта impersonate можно вызывать как синхронно, так и асинхронно.
5.1 Обновлены JS callback Before/AfterRequest новым функционалом.
-
У меня что с BAS версией libcurl.dll, что с этим не проходит проверка антикапчи на одном сервисе. При этом с этим все работает отлично - https://transfiles.ru/tsmbn . Поэтому и спрашиваю, есть ли возможность замены на свой libcurl
-
@Ferdo2 said in HTTP Client - cURL Impersonate [HTTP/2, TLS 1.3, BROWSER_PRESETS, WEBSOCKET]:
что с этим не проходит проверка антикапчи на одном сервисе
Этот модуль заточен под мобильные/десктоп браузеры. Скорее всего вы его не настроили модуль.
-
Добрый день, не было времени к сожалению ответить. Вот это действие BAS (post запрос). С обычным libcurl из BAS и из этого модуля выдает ошибку. С моим libcurl проходит (точнее сказать с обычным, просто скачанным с гугла 8.x версии).
