Для примера будем использовать файлообменник: https://dropfiles.ru/#
Так происходит загрузка изображения средствами браузера:

Проанализировав запросы, можем понять, что происходит POST запрос:

Казалось бы все просто, формируем схожий запрос и победа, но не тут то было.
Есть загвоздка, мы не видим каким образом передается изображение.
Сначала посмотрим, что передается:
------WebKitFormBoundary7b3QaHozwsO6SsYd
Content-Disposition: form-data; name="u_key"
b06403b386cc08fbc84dca91e6faec65
------WebKitFormBoundary7b3QaHozwsO6SsYd
Content-Disposition: form-data; name="files[]"; filename="Заставка.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary7b3QaHozwsO6SsYd--
Первый параметр понятен:
------WebKitFormBoundary7b3QaHozwsO6SsYd
Content-Disposition: form-data; name="u_key"
b06403b386cc08fbc84dca91e6faec65
Это ключ, который висит на инпуте, его можем спарсить, кинув обычный GET к сайту:

Вытягиваем его с ответа регуляркой, либо же xpath`ом, кому как удобней:

С этим разобрались, сразу расскажу о непонятном значении WebKit:
WebKitFormBoundary7b3QaHozwsO6SsYd
Здесь всё просто, статическая часть:
WebKitFormBoundary
И 16 рандомных символов (Верхнего, нижнего регистра англ букв + цифры от 0 до 9)
Так сконкатенировав две строки: WebKitFormBoundary + 16 символов, у нас выйдет уникальный параметр, что и требуется для запроса.
Приступим к тому, с чем я столкнулся и пол дня просидел, решав. А именно эта часть кода:
------WebKitFormBoundary7b3QaHozwsO6SsYd
Content-Disposition: form-data; name="files[]"; filename="Заставка.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary7b3QaHozwsO6SsYd--
Фишка в том, что по сути запрос +- так и выглядит, но не отображается 1 параметр, а это само изображение. Сразу к тому, как и в каком виде его туда всунуть:
Нужно указать формат изображение base64 и через двоеточие, без пробелов, указать переменную, в которой находится переменная содержится сама картинка (При чтении изображения, не забыть поставить галку на "Сохранить в формате base64":

PS: В дальнейшем у меня будет путь прописан в переменной, что не запутались.
Далее переходим к формированию самого POST запроса:
- Указываем URL: https://dropfiles.ru/jqu/ (Именно сюда отсылается изображение, это мы увидели с браузера, где просматривали параметры запроса)
- Заголовок. Я его полностью скопировал, за исключением строки:
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary[[WEB_KIT]]
Здесь как видно, я заменил значение WebKit сгенерированным выше. Остальное оставил без изменений. Скорее всего больше 80% параметров вообще можно убрать, на работу не повлияет.
Кстати не забываем про параметр "Content-Length", длина передаваемого значения, частенько из-за него появляются ошибки в запросах.

Далее перейдем к самому телу запроса:

------WebKitFormBoundary[[WEB_KIT]]
Content-Disposition: form-data; name="u_key"
[[U_KEY]]
------WebKitFormBoundary[[WEB_KIT]]
Content-Disposition: form-data; name="files[]"; filename="sss.png"
Content-Type: image/png
base64:[[VARIABLE_WITH_BASE64_ENCODING]]
------WebKitFormBoundary[[WEB_KIT]]--
Видно, что везде заменен WebKit
Указан спарщенный ключ [[U_KEY]]
И в отличие от оригинала, который был в браузере, появилась ещё одна строка:
base64:[[VARIABLE_WITH_BASE64_ENCODING]]
Как уже было сказано, в переменной [[VARIABLE_WITH_BASE64_ENCODING]] содержится изображение в base64.
Таким образом тело запроса сформировано, но осталось разобраться с Content-Type (Типом содержимого этого тела).
Из стандартных вариантов мы имеем:
application/x-www-form-urlencoded
multipart/form-data
application/json
По сути 2 параметр нам подходит, но он не полон и работать с ним скрипт у нас не будет.
Дописываем его и получаем:
multipart/form-data; boundary=----WebKitFormBoundary[[WEB_KIT]]
Выглядит это так:

Все, запрос у нас сформирован, Запускаем скрипт и наблюдаем, что изображение на сервис загружено:

Вот ответ который мы получили:
{
"files": [
{
"name": "c11d1fc54d0eb18b6102316b8ebe6991.jpeg",
"size": 4463808,
"type": "image/jpeg",
"niceSize": "4.26 MB",
"realName": "Заставка.jpg",
"fileKey": "bde6488feb97671a1b653d634ff75861",
"delFileKey": "27aeb3be164f818574c20f8408fb555c",
"delete_url": "https://dropfiles.ru/jqu/?file=c11d1fc54d0eb18b6102316b8ebe6991.jpeg",
"delete_type": "DELETE"
}
]
}
Этим можно было бы закончить гайд, но я добью парой строк именно для этого сервиса.
Путём проверок и сверки строк выяснил, что параметр "fileKey" отвечает за ссылку на изображение.
Сама форма ссылки:
https://dropfiles.ru/download/[[FileKey]].html
По итогу генерим строку и выходит рабочий URL:
https://dropfiles.ru/download/bde6488feb97671a1b653d634ff75861.html
Так же можем кинуть GET запрос и спарсить ссылку уже на само изображение, будет она такого типа:
/files/718bef28580ca04ce2f37a4afe84ccfc.jpeg
Так же собираем полную ссылку:
https://dropfiles.ru/files/718bef28580ca04ce2f37a4afe84ccfc.jpeg
Ну и чекать нужно, бывает, что с 1 запроса перекидывает на сайт (якобы мы его посетили), а уже по 2 запросу по этой же ссылке скачивается изображение. Но не суть.
Таким образом мы разобрались как отправлять по POST запросу изображение по средствам BAS.
Удачи тебе в написании будущих проектов)
Скрипт: Пример скрипта.xml```
code_text