Имя: Пароль:
1C
1С v8
1С: POST-запрос с типом multipart/form-data
0 dchumak
 
18.01.22
07:05
Добрый день, коллеги.

Нужно отправить POST-запрос в маркировку.

Создал запрос в Postman, оттуда все нормально отправляется, документ создается.
При сохранении curl в http получаю примерно такой файл

POST /api/v3/true-api/edo-api/outgoing-documents/formal HTTP/1.1
Host: elk.prod.markirovka.ismet.kz
Authorization: Bearer ey....Ub2s6iuRFqfGuz44TUAUUt9wF8EC_5jS9p0E
Content-Length: 3686
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="content"

PD94bWwgdmVyc2lvbj0iMS4w.....KPC9maWxlPg0K
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="signature"

MIIGXQYJKoZIhvcNA.....94v7ESBs58fdc/9AA=
----WebKitFormBoundary7MA4YWxkTrZu0gW

bearer - динамический токен
content - зашифрованный в бейс64 ХМЛ-файл с данными
signature - подпись этого файла

Код в 1С выглядит так:

ИмяФайлаОтправкиКонец = "E:\XML\message3.txt";
    
    HTTPЗапрос = Новый HTTPЗапрос;
    HTTPЗапрос.Заголовки.Вставить("POST", "/api/v3/true-api/edo-api/outgoing-documents/formal HTTP/1.1");
    HTTPЗапрос.Заголовки.Вставить("Host", "elk.prod.markirovka.ismet.kz");
    HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data");
    HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
    HTTPЗапрос.АдресРесурса = "";
    HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправкиКонец);
    
    Попытка        
        HTTPСоединение = Новый HTTPСоединение(СтрокаСоединения,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
        ОтветHTTPPost = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);    //POST    
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Неудачная попытка отправки");
    КонецПопытки;
    
    Попытка
        ТекстОтвета = ОтветHTTPPost.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
        Если ОтветHTTPPost.КодСостояния <> 200 Тогда
            Сообщить(ОтветHTTPPost.КодСостояния);
            Сообщить("Возникли ошибки при передаче заказа. Ответ от СУЗ см. на вкладке ""Ответ СУЗ""");
            Сообщить(ТекстОтвета);
        КонецЕсли;
    Исключение
        ВызватьИсключение "Не удалось передать уведомление в маркировку, код состояния: " + ОтветHTTPPost.КодСостояния;
    КонецПопытки;

Получаю ошибку 500.

{"code":500,"description":"org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; ... "error_message":"Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found"}

Может кто сталкивался, что я делаю не так?

Заранее спасибо.

1С 8.3.18.1289.
1 dchumak
 
18.01.22
07:07
Пробовал менять кодировку на ANSI - не помогло.
2 BaHgaJI
 
18.01.22
08:57
Вот так попробуй:  HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
3 arsik
 
гуру
18.01.22
08:57
4 Ёпрст
 
18.01.22
09:34
(0) должен указать разделитель в теле запроса. Между разделителем твой файл в виде басе64 строки и подписи
5 dchumak
 
18.01.22
09:36
(4) ----WebKitFormBoundary7MA4YWxkTrZu0gW это и есть разделитель
6 dchumak
 
18.01.22
09:38
(2) пробовал, в этом случае ОтветHTTPPost = неопределено
7 Ёпрст
 
18.01.22
09:39
(6) где он у тебя в коде?
8 pechkin
 
18.01.22
09:39
У тебя не мультипарт в 1с
9 Ёпрст
 
18.01.22
09:40
Ты какую то неведомую хрень в заголовки попихал. А нужно в боди
10 dchumak
 
18.01.22
09:42
(7) я взял файл из Postman и его просто загружаю, если он загрузится то сделаю формирование динамически. Из Postman этот cURL отправляется без ошибок.
11 pechkin
 
18.01.22
09:43
(7) поставь контент тайп другой тогда
12 dchumak
 
18.01.22
09:45
(9) сделал как в Postman, оставил только
HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
также ошибка 500
13 Ёпрст
 
18.01.22
09:46
(10) ты не догоняешь что ле ? У тебя даже пример с курла есть как оно должно быть.
14 dchumak
 
18.01.22
09:46
(11) не могу, по документации так должно быть, в cURL в Postman Body имеет тип "form-data"
15 Ёпрст
 
18.01.22
09:47
(12) еще раз не надо пихать хрень в заголовки от слова совсем.
16 dchumak
 
18.01.22
09:47
(13) хочешь сказать, что убрать все заголовки, данных в файле будет достаточно?
17 Ёпрст
 
18.01.22
09:52
(16)
ytn
18 dchumak
 
18.01.22
09:53
(15) попробовал убрать лишнее
оставил только
HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
иначе ошибки (требование авторизации или неверный тип содержимого запроса)
19 dchumak
 
18.01.22
09:57
в итоге либо ошибка 500 (если оставляю вот так)
HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);

либо вообще ответ неопределено, если делаю так
HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
20 Ёпрст
 
18.01.22
10:01
(0) на вот, развлекайся


HTTPСоединение = Новый HTTPСоединение("elk.prod.markirovka.ismet.kz",,,,,,Новый ЗащищенноеСоединениеOpenSSL);

ВремГраница = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ТелоЗапроса = Новый ТекстовыйДокумент();
ТелоЗапроса.РазделительСтрок = Символы.CR+Символы.LF;
ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content"";");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(ТвойФайлВВидеСтрокиBase64);

ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""signature"";");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(ТвояПодптсьВВидеСтроки);

ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница + "--");


ТелоЗапросаСтрока = ТелоЗапроса.ПолучитьТекст();
HTTPЗапрос = Новый HTTPЗапрос("api/v3/true-api/edo-api/outgoing-documents/formal HTTP/1.1");
HTTPЗапрос.Заголовки["Content-Type"] = "multipart/form-data; boundary=" + ВремГраница;
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрока, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
21 youalex
 
18.01.22
10:04
22 dchumak
 
18.01.22
11:31
(20) спасибо.
Вот так исправил, взлетело
HTTPЗапрос = Новый HTTPЗапрос("/api/v3/true-api/edo-api/outgoing-documents/formal");
23 azamatagent1985
 
11.03.22
07:35
Добрый день,

у меня такая же ошибка при попытке отправить http-запрос на отправку исходящего Акта приема-передачи по маркировке:

content = ПолучитьДокументXMLПриОтправкеАкта(ДокументСсылка); // функция возвращает строку в виде XML Акта ПП     
content = ПолучитьДвоичныеДанныеИзСтроки(content);     
content = СтрЗаменить(СтрЗаменить(Base64Строка(content), Символы.ВК, ""), Символы.ПС,""); // Акт ПП в Base64
    
signature = СтруктураПараметров["ПолеDATA"]; // подпись ЭЦП     
signature = ПолучитьДвоичныеДанныеИзСтроки(signature);
signature = СтрЗаменить(СтрЗаменить(Base64Строка(signature), Символы.ВК, ""), Символы.ПС,""); // подпись ЭЦП в Base64

// далее - формирование тела запроса в формате "multipart/form-data" по (20)
    
Разделитель = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
    
ТелоЗапроса = Новый ТекстовыйДокумент();     
ТелоЗапроса.РазделительСтрок = Символы.ВК + Символы.ПС;
ТелоЗапроса.ДобавитьСтроку("--" + Разделитель);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content"";");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(content);    
ТелоЗапроса.ДобавитьСтроку("--" + Разделитель);
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""signature"";");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(signature);    
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку("--" + Разделитель + "--");        
ТелоЗапроса = ТелоЗапроса.ПолучитьТекст();
        
АдресРесурса = "/api/v3/true-api/edo-api/outgoing-documents/formal";

Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Разделитель);
Заголовки.Вставить("Authorization", СтрШаблон("Bearer %1", ТокенАкторизации)); // ТокенАвторизации - динамически получаемый параметр вида "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9........."

HTTPСоединение = Новый HTTPСоединение("stage.ismet.kz", 443, Неопределено, Неопределено, Неопределено, 0, Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено)); // "stage.ismet.kz" - тестовая ИС по маркировке
        
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);            
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
    
Попытка    
        
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
                
    ТекстОтвета = СокрЛП(HTTPОтвет.ПолучитьТелоКакСтроку());  
        
Исключение
    
КонецПопытки;  

В результате получаю ошибку с кодом состояния 500 {"error_message":"Ошибка при выполнении запроса"}. В Postman дается более подробный ответ:
{
"code": 500,
"description": "org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; ...................
"error_message": "Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found"
}
24 azamatagent1985
 
11.03.22
08:16
(22) Как у Вас получилось, можете привести работающий пример?
25 novichok79
 
11.03.22
09:41
у вас же написано, the request was rejected because no multipart boundary was found.
нет маркера, который отделяет составные части сообщения.
26 Ёпрст
 
11.03.22
10:39
(23) перед вторым ТелоЗапроса.ДобавитьСтроку("Content-Disposition: нужно еще раз добавить разделитель
27 azamatagent1985
 
11.03.22
11:55
Переделал так:

ТелоЗапроса = Новый ТекстовыйДокумент();     
ТелоЗапроса.РазделительСтрок = Символы.ВК + Символы.ПС;
ТелоЗапроса.ДобавитьСтроку("--" + Разделитель);
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content"";");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(content);
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку("--" + Разделитель);
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""signature"";");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(signature);
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку("--" + Разделитель + "--");        
ТелоЗапроса = ТелоЗапроса.ПолучитьТекст();

Тело запроса в "multipart/form-data" выглядит теперь следующим образом:

--e64ec586c7e64a86a53ce9dee082cbcd

Content-Disposition: form-data; name="content";

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGZpbGUgeG1sbnM6eHNp................................

--e64ec586c7e64a86a53ce9dee082cbcd

Content-Disposition: form-data; name="signature";

TUlJUHZ3WUpLb1pJaHZjTkFRY0NvSUlQc0RDQ0Q2d0NBUUV4RGpBTUJnZ3FndzREQ2dFREFRVUFNQzBHQ1................................

--e64ec586c7e64a86a53ce9dee082cbcd--

Казалось бы все нормально, передаются корректные "content" и "signature" в Base64, но теперь приходит другая ошибка с кодом состояния 500:

{"code":500,"description":"org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'content' is not present\n\tat org.springframework.web.multipart.support........
...............................................................................................................................................................................................................
"error_message":"Required request part 'content' is not present"}
28 Ёпрст
 
11.03.22
12:04
(27) надо повыкидывать лишние ТелоЗапроса.ДобавитьСтроку(""); перед ТелоЗапроса.ДобавитьСтроку("--" + Разделитель);
29 Ёпрст
 
11.03.22
12:11

    ВремГраница = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
    ТелоЗапроса = Новый ТекстовыйДокумент();    
    ТелоЗапроса.РазделительСтрок = Символы.CR+Символы.LF;
    ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
    ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content""");
    ТелоЗапроса.ДобавитьСтроку("");
    ТелоЗапроса.ДобавитьСтроку(content);
    ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
    ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""signature""");
    ТелоЗапроса.ДобавитьСтроку("");
    ТелоЗапроса.ДобавитьСтроку(signature);
    ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница + "--");
    ТелоЗапросаСтрока = ТелоЗапроса.ПолучитьТекст();
    HTTPЗапрос = Новый HTTPЗапрос(Адрес);
    HTTPЗапрос.Заголовки["Content-Type"] = "multipart/form-data; boundary=" + ВремГраница;
    HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапросаСтрока);//, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
    Сообщить(""+HTTPОтвет.КодСостояния+"" ""+HTTPОтвет.ПолучитьТелоКакСтроку());
30 azamatagent1985
 
11.03.22
13:34
(29)

ВремГраница = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
ТелоЗапроса = Новый ТекстовыйДокумент();    
ТелоЗапроса.РазделительСтрок = Символы.CR+Символы.LF;
ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content""");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(content);
ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница);
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""signature""");
ТелоЗапроса.ДобавитьСтроку("");
ТелоЗапроса.ДобавитьСтроку(signature);
ТелоЗапроса.ДобавитьСтроку("--" + ВремГраница + "--");
ТелоЗапросаСтрока = ТелоЗапроса.ПолучитьТекст();

Использовал такой вариант, но ошибка по прежнему "error_message":"Required request part 'content' is not present"
31 Ёпрст
 
11.03.22
13:43
(30) и че у тебя в content ? И точно там form-data, а не json  какой должен быть ?
32 Ёпрст
 
11.03.22
13:44
а ну вот.. я тя там xml судя по коду.
33 Ёпрст
 
11.03.22
13:49
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content""; filename=""file.xml");
ТелоЗапроса.ДобавитьСтроку("Content-Type: text/xml; charset=utf-8");

так, хотя бы..
34 azamatagent1985
 
14.03.22
08:33
От тех. поддержки получил CURL запроса, проверил в Postman, работает. Как такой запрос реализовать в 1С?  

curl --location --request POST 'https://stage.ismet.kz/api/v3/true-api/edo-api/outgoing-documents/formal' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwcm9kdWN0X2dyb3VwX2luZm8iOlt7Im5hbWUiOiJscCIsInN0YXR1cyI6IjUiLCJ0eXBlcyI6WyJSRVRBSUwiLCJQUk9EVUNFUiIsIklNUE9SVEVSIiwiVFJBREVfUEFSVElDSVBBTlQiLCJXSE9MRVNBTEVSIl19LHsibmFtZSI6Im1pbGsiLCJzdGF0dXMiOiI1IiwidHlwZXMiOlsiUFJPRFVDRVIiLCJSRVRBSUwiLCJJTVBPUlRFUiIsIlRSQURFX1BBUlRJQ0lQQU5UIiwiV0hPTEVTQUxFUiJdfSx7Im5hbWUiOiJzaG9lcyIsInN0YXR1cyI6IjUiLCJ0eXBlcyI6WyJSRVRBSUwiLCJQUk9EVUNFUiIsIklNUE9SVEVSIiwiVFJBREVfUEFSVElDSVBBTlQiLCJXSE9MRVNBTEVSIl19LHsibmFtZSI6InBoYXJtYSIsInN0YXR1cyI6IjUiLCJ0eXBlcyI6WyJSRVRBSUwiLCJQUk9EVUNFUiIsIklNUE9SVEVSIiwiVFJBREVfUEFSVElDSVBBTlQiLCJXSE9MRVNBTEVSIiwiTUVESUNBTCJdfSx7Im5hbWUiOiJhbGNvaG9sIiwic3RhdHVzIjoiNSIsInR5cGVzIjpbIlBST0RVQ0VSIiwiVFJBREVfUEFSVElDSVBBTlQiLCJXSE9MRVNBTEVSIl19LHsibmFtZSI6IndhdGVyIiwic3RhdHVzIjoiNSIsInR5cGVzIjpbIlJFVEFJTCIsIlBST0RVQ0VSIiwiSU1QT1JURVIiLCJUUkFERV9QQVJUSUNJUEFOVCIsIldIT0xFU0FMRVIiXX0seyJuYW1lIjoidG9iYWNjbyIsInN0YXR1cyI6IjUiLCJ0eXBlcyI6WyJQUk9EVUNFUiIsIlJFVEFJTCIsIklNUE9SVEVSIiwiVFJBREVfUEFSVElDSVBBTlQiLCJXSE9MRVNBTEVSIl19XSwidXNlcl9zdGF0dXMiOiJCTE9DS0VEIiwidXNlcl9uYW1lIjpudWxsLCJpbm4iOiI5NzAyMDkzMDEzMzIiLCJwaWQiOjYwMDAwMDIyNCwiYXV0aG9yaXRpZXMiOlsiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuTU9ESUZZSU5HLldSSVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuU0hJUE1FTlQuQ1JFQVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuUkVBR0dSRUdBVElPTi5DUkVBVEUiLCJST0xFX0hFQURfVFAiLCJDUlBULUtNLU9SREVSUy5PUkRFUi1GQUNBREUtQ09OVFJPTExFUi5DUkVBVElORy1EUkFGVC5DUkVBVEUiLCJDUlBULUZBQ0FERS5ET0MtQ09OVFJPTExFUi5SRU1BUktJTkcuQ1JFQVRFIiwiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuUkVBRElORy1CWS1PUEVSQVRPUi5DUkVBVEUiLCJST0xFX09SR19JTVBPUlRFUiIsIlJPTEVfVVNFUiIsIlJPTEVfT1JHX1RSQURFX1BBUlRJQ0lQQU5UIiwiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuUkVBRElORy1CWS1TVVouQ1JFQVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuQ09OVFJBQ1QtQ09NTUlTU0lPTklORy5DUkVBVEUiLCJDUlBULUtNLU9SREVSUy5PUkRFUi1GQUNBREUtQ09OVFJPTExFUi5NT0RJRllJTkctRFJBRlQuQ1JFQVRFIiwiUk9MRV9PUkdf0KDQvtC30L3QuNGH0L3QsNGPINGC0L7RgNCz0L7QstC70Y8iLCJDUlBULUZBQ0FERS5ET0MtQ09OVFJPTExFUi5BQ0NFUFRBTkNFLlJFQUQiLCJST0xFX09SR1_Qo9GH0LDRgdGC0L3QuNC6INC-0LHQvtGA0L7RgtCwIiwiUk9MRV9PUkdfV0hPTEVTQUxFUiIsIkNSUFQtRkFDQURFLkNJUy1DT05UUk9MTEVSLlJFUE9SVC5ET1dOTE9BRCIsIlJPTEVfU1VaIiwiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuTU9ESUZZSU5HLURSQUZULlJFQUQiLCJDUlBULUZBQ0FERS5BUFAtVVNFUi1DT05UUk9MTEVSLkxJU1QtQUNUSVZFLlJFQUQiLCJDUlBULUZBQ0FERS5ET0MtQ09OVFJPTExFUi5TSElQTUVOVC5SRUFEIiwiUk9MRV9PUkdfUFJPRFVDRVIiLCJDUlBULUtNLU9SREVSUy5PUkRFUi1GQUNBREUtQ09OVFJPTExFUi5NT0RJRllJTkcuQURNSU5JU1RSQVRJT04iLCJDUlBULUtNLU9SREVSUy5PUkRFUi1GQUNBREUtQ09OVFJPTExFUi5SRUFESU5HLUJZLU9QRVJBVE9SLlJFQUQiLCJDUlBULUZBQ0FERS5ET0MtQ09OVFJPTExFUi5SRUNFSVBULkNSRUFURSIsIkNSUFQtRkFDQURFLkRPQy1DT05UUk9MTEVSLklNUE9SVC1DT01NSVNTSU9OSU5HLkNSRUFURSIsIlJPTEVfT1JHX9CY0LzQv9C-0YDRgtC10YAg0YLQvtCy0LDRgNCwIiwiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuTU9ESUZZSU5HLkRPV05MT0FEIiwiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuUkVBRElORy5SRUFEIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuUkVNQVJLSU5HLlJFQUQiLCJDUlBULUtNLU9SREVSUy5PUkRFUi1GQUNBREUtQ09OVFJPTExFUi5NT0RJRllJTkcuREVMRVRFIiwiRUxLLVJFR0lTVFJBVElPTi5SRUFEIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuQUNDRVBUQU5DRS5DUkVBVEUiLCJDUlBULUtNLU9SREVSUy5PUkRFUi1GQUNBREUtQ09OVFJPTExFUi5NT0RJRllJTkcuUkVBRCIsIkNSUFQtRkFDQURFLkRPQy1DT05UUk9MTEVSLklOREktQ09NTUlTU0lPTklORy5DUkVBVEUiLCJST0xFX0FETUlOIiwiQ1JQVC1GQUNBREUuUFJPRklMRS1DT05UUk9MTEVSLkNPTVBBTlkuUkVBRCIsIkNSUFQtRkFDQURFLkRPQy1DT05UUk9MTEVSLkFHR1JFR0FUSU9OLkNSRUFURSIsIkNSUFQtS00tT1JERVJTLk9SREVSLUZBQ0FERS1DT05UUk9MTEVSLlJFQURJTkcuQ1JFQVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuQ09NTUlTU0lPTklORy5SRUFEIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuRElTQUdHUkVHQVRJT04uUkVBRCIsIkNSUFQtS00tT1JERVJTLk9SREVSLUZBQ0FERS1DT05UUk9MTEVSLkNSRUFUSU5HLURSQUZULlJFQUQiLCJDUlBULUZBQ0FERS5NQVJLRUQtUFJPRFVDVFMtQ09OVFJPTExFUi5SRUFEIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuQUdHUkVHQVRJT04uUkVBRCIsIkNSUFQtRkFDQURFLkFQUC1VU0VSLUNPTlRST0xMRVIuTElTVC1SRU1PVkVELlJFQUQiLCJST0xFX09SR19NRURJQ0FMIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuS00tQVBQTElFRC1DQU5DRUwuQ1JFQVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuQ09NTUlTU0lPTklORy5DUkVBVEUiLCJDUlBULUZBQ0FERS5ET0MtQ09OVFJPTExFUi5ESVNBR0dSRUdBVElPTi5DUkVBVEUiLCJDUlBULUZBQ0FERS5ET0MtQ09OVFJPTExFUi5MT0FOLkNSRUFURSIsIkNSUFQtS00tT1JERVJTLk9SREVSLUZBQ0FERS1DT05UUk9MTEVSLk1PRElGWUlORy5DUkVBVEUiLCJST0xFX09SR1_Qn9GA0L7QuNC30LLQvtC00LjRgtC10LvRjCIsIklOTl85NzAyMDkzMDEzMzIiLCJFTEstUkVHSVNUUkFUSU9OLldSSVRFIiwiQ1JQVC1GQUNBREUuQ0lTLUNPTlRST0xMRVIuU0VBUkNILlJFQUQiLCJST0xFX09SR1_QntC_0YLQvtCy0LDRjyDRgtC-0YDQs9C-0LLQu9GPIiwiQ1JQVC1GQUNBREUuUFJPRklMRS1DT05UUk9MTEVSLkNPTVBBTlkuQ1JFQVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuUkVBR0dSRUdBVElPTi5SRUFEIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuTE9BTi5SRUFEIiwiQ1JQVC1LTS1PUkRFUlMuT1JERVItRkFDQURFLUNPTlRST0xMRVIuUkVBRElORy1CWS1TVVouUkVBRCIsIlJPTEVfT1JHX9Cc0LXQtNC40YbQuNC90YHQutCw0Y8g0L7RgNCz0LDQvdC40LfQsNGG0LjRjyIsIkVMSy1SRUdJU1RSQVRJT04uQ1JFQVRFIiwiQ1JQVC1GQUNBREUuRE9DLUNPTlRST0xMRVIuS00tQ0FOQ0VMLkNSRUFURSIsIlJPTEVfT1JHX1JFVEFJTCJdLCJjbGllbnRfaWQiOiJjcnB0LXNlcnZpY2UiLCJmdWxsX25hbWUiOiLQkdOY0JfQhtCb0KXQkNCdINCU0IbQndCc0rDQpdCQ0JzQldCUINCh0JDQmdCb0JDQo9Kw0JvQqyIsInNjb3BlIjpbInRydXN0ZWQiXSwiaWQiOjYwMDAwMjA2MiwiZXhwIjoxNjQ3MjY3NzkwLCJvcmdhbmlzYXRpb25fc3RhdHVzIjoiUkVHSVNURVJFRCIsImp0aSI6IjBlNDRjMmE2LTY3OTQtNDBlNy05ZDdjLTA1NWMyYjM4NjViMyJ9.MT5VKUzPWfOHjpp9ejMXsU19vIj536yH1GEuO8U2_Eo' \
--form 'content="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxmaWxlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIGZpbGVJZD0iRUVVX0FDVF8yZTQ3Y2ZkZS05YzY4LTRkODktODU3OC1hMGNhYzMyMWNjOTIiIHZlcnNpb249IjEuMCIgc2VuZGluZ0RhdGVUaW1lPSIyMDIyLTAzLTE0VDAzOjQ2OjUxWiIgeHNpOm5vTmFtZXNwYWNlU2NoZW1hTG9jYXRpb249InhzZF9hY3QueHNkIj4NCgk8cGFydGljaXBhbnRzIHN1cHBsaWVySWQ9Ijk3MDIwOTMwMTMzMiIgY29uc2lnbmVlSWQ9Ijk4MTIwNDM1MDg1MyIvPg0KCTxkb2N1bWVudCBvcGVyYXRpb25UeXBlPSIxIiBjb3JyZWN0aW9uRmxhZz0iZmFsc2UiPg0KCQk8bWFpbkluZm8+DQoJCQk8c3VwcGxpZXJJbmZvIHN1cHBsaWVyTmFtZT0i0JjQnyDQkdOY0JfQhtCb0KXQkNCdINCU0IbQndCc0rDQpdCQ0JzQldCUINCh0JDQmdCb0JDQo9Kw0JvQq9CY0J8iIHN1cHBsaWVySWRlbnRpZmljYXRpb25Db2RlPSI5NzAyMDkzMDEzMzIiLz4NCgkJCTxjb25zaWduZWVJbmZvIGNvbnNpZ25lZU5hbWU9ItCY0J8g0JrQkNCR0JjQmtCV0J0g0JDQm9Cc0JDQlyDQkdCj0KLQkNCR0JXQmtKw0JvQqyIgY29uc2lnbmVlSWRlbnRpZmljYXRpb25Db2RlPSI5ODEyMDQzNTA4NTMiLz4NCgkJPC9tYWluSW5mbz4NCgkJPHByb2R1Y3RMaXN0Pg0KCQkJPGlDb2RlIGNvdW50PSIxMCI+MDEwNDYwMDI2NjAwNTc1NTIxJ1c4O0lqMTwvaUNvZGU+DQoJCQk8aUNvZGUgY291bnQ9IjEwIj4wMTA0NjAwMjY2MDA1NzU1MjEhK2VKTEhLPC9pQ29kZT4NCgkJCTxpQ29kZSBjb3VudD0iMTAiPjAxMDQ2MDAyNjYwMDU3NTUyMShMcXJxU3U8L2lDb2RlPg0KCQk8L3Byb2R1Y3RMaXN0Pg0KCQk8cHJvZHVjdFRvdGFscz4NCgkJCTxndGluIGNvdW50PSIzMCI+MDAwMDAwNDYwODIyNTE8L2d0aW4+DQoJCTwvcHJvZHVjdFRvdGFscz4NCgk8L2RvY3VtZW50Pg0KPC9maWxlPg"' \
--form 'signature="MIII9wYJKoZIhvcNAQcCoIII6DCCCOQCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGgggaBMIIGfTCCBGWgAwIBAgIUE4ohHxxyAXo/2lG+D6ZFFOOBwx8wDQYJKoZIhvcNAQELBQAwUjELMAkGA1UEBhMCS1oxQzBBBgNVBAMMOtKw0JvQotCi0KvSmiDQmtCj05jQm9CQ0J3QlNCr0KDQo9Co0Ksg0J7QoNCi0JDQm9Cr0pogKFJTQSkwHhcNMjIwMjI0MDcwMzQxWhcNMjMwMjI0MDcwMzQxWjCBtDEuMCwGA1UEAwwl0JHTmNCX0IbQm9Cl0JDQnSDQlNCG0J3QnNKw0KXQkNCc0JXQlDEZMBcGA1UEBAwQ0JHTmNCX0IbQm9Cl0JDQnTEYMBYGA1UEBRMPSUlOOTcwMjA5MzAxMzMyMQswCQYDVQQGEwJLWjEbMBkGA1UEKgwS0KHQkNCZ0JvQkNCj0rDQm9CrMSMwIQYJKoZIhvcNAQkBFhRELkJBWklMSEFOQEdNQUlMLkNPTTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkYRYl1psFcC6j9GBGYD4tzYNeNCVNM5OFJhMvCojvfNz1IjVGBj9HadicpXO3Irt1lMD6tIryr6SKsSYFtm5IDvtVrQMsgWkM049i4Dpcwi4thbknqXD6JxGk/qV4X4cq4Z5EO8BgtbSkCq6wKRcAYa4/eOwPMJz04oPRBzcnid54eD6CdrO8D2OwnZyblL6n+Ue56ANboT1yHTE/HpoMPzn70JCN7+NQtdOoT7uMkQ2OsSImLLSUisRRWdnsEBRQHB5o9Y9ScPYgpjcCHpeLSmPYOTkiAF4Pmhumd89kIwr+fsDuGC60qPqF4iHrHYI95u+OULejCZGbgPMd3plUCAwEAAaOCAeYwggHiMA4GA1UdDwEB/wQEAwIGwDAoBgNVHSUEITAfBggrBgEFBQcDBAYIKoMOAwMEAQEGCSqDDgMDBAMCATAPBgNVHSMECDAGgARbanQRMB0GA1UdDgQWBBS0wVD3azQNtBOcHIza3+nTvD03nzBeBgNVHSAEVzBVMFMGByqDDgMDAgMwSDAhBggrBgEFBQcCARYVaHR0cDovL3BraS5nb3Yua3ovY3BzMCMGCCsGAQUFBwICMBcMFWh0dHA6Ly9wa2kuZ292Lmt6L2NwczBWBgNVHR8ETzBNMEugSaBHhiFodHRwOi8vY3JsLnBraS5nb3Yua3ovbmNhX3JzYS5jcmyGImh0dHA6Ly9jcmwxLnBraS5nb3Yua3ovbmNhX3JzYS5jcmwwWgYDVR0uBFMwUTBPoE2gS4YjaHR0cDovL2NybC5wa2kuZ292Lmt6L25jYV9kX3JzYS5jcmyGJGh0dHA6Ly9jcmwxLnBraS5nb3Yua3ovbmNhX2RfcnNhLmNybDBiBggrBgEFBQcBAQRWMFQwLgYIKwYBBQUHMAKGImh0dHA6Ly9wa2kuZ292Lmt6L2NlcnQvbmNhX3JzYS5jZXIwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5nb3Yua3owDQYJKoZIhvcNAQELBQADggIBAH3qqnbYKb7AUQ/Qy+b4xOTJHdmkhQ1YH8hOHCcbIH7Ee/AmEYSEK6x5dJ3lIvYgexFt8ZAxDkEZeztEL9uGEISnJVCVkCNdlOBJ1rjlOSg85JmWuSzhXEhDgx5yEzYwmwvtpoIfXO77doX+CGhwa+esdoXBAfXdrUOcjNgHQFztGkbmUsu0VWChTlyz+BSlp14Wi3YOd92CiQ70HdP8aZQnGZaS3FIg/kgkyuRyeeuDhSHCj0vZsZZyGeNvnUkqWlm3p3DR6ZxZzHFYEjx8hSSc1I7XGwJvh4GZ2EcS+W/QNcpqHUgUwAqhFrYigpGkoa5yOjZIxMFPB42hKMFvF0aVKQoth4/ezrLbJEXV6kqekU8HBq4B8rXP+RwAUEASeX0etsHK7u0Jb9RoLDjfBjVMBh0kUnnfnQrYiS13MWdq0IChYDWu9UY8GqlGmjf9/eyfy3ynINOLAOPFQUlCqpjNoDw9hMbTXy5+419WGW0NaPpjd62ApWuYRP7LNpJNR1h2kAknJOGOuG+AtXjuNUVuB5HuPubWQMEM7gNaGGe9RMJAt9XRfXcvkr4VrBcqiBFO6Ia+RhXBE9OXysOgdAhrtA2ElCAuL6tIdrD5ghP3AqHFohvNXCxsyoxC8FeTMqChKD7v/9D1GyBiPByv3wcfl4DLAZp/eOFMEWPZ/1W7MYICOjCCAjYCAQEwajBSMQswCQYDVQQGEwJLWjFDMEEGA1UEAww60rDQm9Ci0KLQq9KaINCa0KPTmNCb0JDQndCU0KvQoNCj0KjQqyDQntCg0KLQkNCb0KvSmiAoUlNBKQIUE4ohHxxyAXo/2lG+D6ZFFOOBwx8wDQYJYIZIAWUDBAIBBQCggaIwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjIwMzE0MDQyNTQwWjAvBgkqhkiG9w0BCQQxIgQgnPPwxv+gDkJ8PTmQREyh+MCzXrypluLgQifyLEO5FUowNwYLKoZIhvcNAQkQAi8xKDAmMCQwIgQgnE4GsNehibmjjgn86Wv4KUzbieuiRjw7kMKtPwbraMwwDQYJKoZIhvcNAQELBQAEggEAfBqFumCdAgHBzLha0NKrTOcXWlR6fqKfjEFySNvh6g65rQtEF8T35UdGu1m5X6n265q2F/J842yt2RuVDPggBcGaXESzMSDbwxsMkzoaZG1zQkTYFtrm5uhc5wsKFlOcvFVrTxvAiLaHEl3OMbWpdm83Ptn0r3f3FidZM0DEgYfgPYpV7V+Qu6ToKnv5ZhkqCA4FweTxj9aBruJRpIQj0ylOw/tH153O5+T+dDhX81F/YTMdNx2GtEJP71CDD3jZ20Xi4M01ZPxijwuea425u+2Lhj5CXxj2Sr7MnMMQG85xlQSwpwW2B6pbiYWzUgbRfguY4ZFpKQZfto2rqkI7tA=="'
35 Serginio1
 
14.03.22
12:43
36 Ёпрст
 
14.03.22
20:51
(34)
так пробуй
ТелоЗапроса.ДобавитьСтроку("Content-Disposition: form-data; name=""content"");
ТелоЗапроса.ДобавитьСтроку("Content-Type: text/plain");
37 azamatagent1985
 
17.03.22
13:24
Проблема решилась, с запросом все в порядке было, ошибка была в подписи параметра тела запроса "signature". Спасибо за советы.