Имя: Пароль:
1C
 
POST запрос ...
0 lamme
 
20.10.20
11:03
Коллеги .. прошу пинать или не пинать ..
Сколько с Post запросами не работаю  - не понимаю логики (

Есть точка входа

Endpoint: https://www.farpost.ru/good/packet/api/sync

заголовки:
Content-Type: multipart/form-data

Обязательные параметры запроса:
packetId  (число)
auth  (строка)
data  (Файл или бинарный контент)

---

само соединение и установка заголовков понятна


Прокси = Новый ИнтернетПрокси();
    Прокси.Установить("https",,);
    Прокси.Пользователь = "";
    Прокси.Пароль       = "";

SSL = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(),
            Новый СертификатыУдостоверяющихЦентровWindows());

    
    Попытка
        HTTP = Новый HTTPСоединение("http://www.farpost.ru";,,,, Прокси,, );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;


    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "multipart/form-data");

--


затыкаюсь на передаче параметров.
я правильно понимаю - что надо сделать текстовый файл и туда вставить строку типа
СтрЗапроса=
"&packetId="+Сокрлп(packetId)+"&auth="+Сокрлп(auth)+"&data="+ ???

те
ФайлОтправки = Новый Файл(имяФайлаОтправки);
ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтправки);
    ЗаписьТекста.Записать(СтрЗапроса);
    ЗаписьТекста.Закрыть();


и потом это все
HTTP.ОтправитьДляОбработки(имяФайлаОтправки,, имяВыходногоФайла, Заголовки);

????
или нет ?

HTTP.ОтправитьДляОбработки(имяФайлаОтправки,, имяВыходногоФайла, Заголовки);
1 ДенисЧ
 
20.10.20
11:10
Правильно

ЗЫ. Быстрее попробовать было бы ))
2 lamme
 
20.10.20
11:11
а как туда вставить бинарный файл ?
3 ДенисЧ
 
20.10.20
11:14
Передать бинарный файл)))
Не пробовал?

Или, если приёмник поймёт - его закодировать, хотя для поста это необязательно
4 youalex
 
20.10.20
11:16
HTTPЗапрос (HTTPRequest)
УстановитьТелоИзДвоичныхДанных (SetBodyFromBinaryData)
Синтаксис:
УстановитьТелоИзДвоичныхДанных(<Данные>)
Параметры:
<Данные> (обязательный)
Тип: ДвоичныеДанные.
Содержит тело запроса в виде двоичных данных.
5 lamme
 
20.10.20
11:17
а ..
я передаваймый файл - записал локально.
теперьб его можно в ПолучитьДвоичныеДанные()
и вставляем в запрос
и проверяем чего получается
6 lamme
 
20.10.20
11:17
(4)
не.
вроде надо сначала файл с данными - в виде двоичных данных - вставить в запрос
7 youalex
 
20.10.20
11:18
(6) а это что? )
8 lamme
 
20.10.20
11:19
(4)
не не
это сам запрос в виде двочных данных отправляется.
там вроде такого не надо

там надо исходный файл расширение xls преобразовать в двоичные данные
и добавить все это в запрос

а сам запрос - обычный
9 youalex
 
20.10.20
11:28
А.
Тогда возможно, тебе нужно создать структуру ("packetId, auth, data"), в "data", соответственно вставить Двоичные данные (из файла или потока).
Структуру записать в JSON через ЗаписатьJSON(), и уже полученную строку добавить в тело запроса:
HTTPЗапрос.УстановитьТелоИзСтроки()
10 lamme
 
20.10.20
11:32
может и так ..
сейчас - базу заархивируют
проверю
11 youalex
 
20.10.20
11:39
Да, Двоичные данные нужно будет сериализовать сначала.
12 lamme
 
20.10.20
11:40
так ...
это что такое ?
13 ДенисЧ
 
20.10.20
11:43
(12) Ктоздесь??? )))

"Сериализация (в программировании) — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности"
14 lamme
 
20.10.20
11:45
а зачем ее делать ? не улавливаю
15 ДенисЧ
 
20.10.20
11:46
(14) Это то, чтоо я писал в (3)
Бинарник в ююенкод или базе64 завернуть. Если клиент поймёт.
16 lamme
 
20.10.20
11:46
одним словом,
не выходит каменый цветок...  ((
17 lamme
 
20.10.20
11:47
дд = Новый ДвоичныеДанные(ФайлПрайс);
    

    Прокси = Новый ИнтернетПрокси();
    Прокси.Установить("https",,);
    Прокси.Пользователь = "";
    Прокси.Пароль       = "";

    
    
    
    SSL = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(),
            Новый СертификатыУдостоверяющихЦентровWindows());

    
    Попытка
        HTTP = Новый HTTPСоединение("http://www.farpost.ru";,,,, Прокси,, );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;

    имяФайлаОтправки = ПолучитьимяВременногоФайла("txt");

    ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтправки);
    ЗаписьТекста.Записать("&packetId="+Сокрлп(packetId)+"&auth="+Сокрлп(auth)+"&data="+дд);
    ЗаписьТекста.Закрыть();


    имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML
    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "multipart/form-data");
    
    
    Запрос = Новый HTTPЗапрос("http://www.farpost.ru/good/packet/api/sync";, Заголовки);
    Запрос.ПолучитьТелоКакДвоичныеДанные();
    

    //Соединение = Новый HTTPСоединение("http://www.farpost.ru/good/packet/api/sync";);
    HTTP.ОтправитьДляОбработки(имяФайлаОтправки,, имяВыходногоФайла, Заголовки);


в ответ приходит вся страница целиком.
18 lamme
 
20.10.20
11:52
если сделать так

Попытка
        HTTP = Новый HTTPСоединение("http://www.farpost.ru/good/packet/api/sync";,,,, Прокси,,SSL );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;

...    
    
    Запрос = Новый HTTPЗапрос("/good/packet/api/sync", Заголовки)

то выходит

Ошибка работы с Интернет:  Ошибка доступа к ресурсу. Путь не найден:  (400). {"reason":"ERROR_REASON_EMPTY_REQUEST"}



в тоже время - в апи написано
ERROR_REASON_EMPTY_REQUEST    Отсутствует обязательный параметр data или auth    Проверить наличие и корректность параметров data или auth
19 lamme
 
20.10.20
11:52
те типа верной дорогой иду - во втором варианте
но не верно передаю параметры
20 youalex
 
20.10.20
11:52
(14) чтобы передать сериализованный бинарник в Запросе.
Base64Строка(ДвДанные) ,  XMLСтрока(ДвДанные) - как вариант
21 youalex
 
20.10.20
11:54
"http://www.farpost.ru/good/packet/api/sync";;, Заголовки);

http: - вроде не надо.

у тебя http://www.farpost.ru - имя сервера
good/packet/api/sync - имя ресурса
22 youalex
 
20.10.20
11:54
http://www.farpost.ru - имя сервера
23 youalex
 
20.10.20
11:55
миста добавляет http))
24 lamme
 
20.10.20
11:58
BBase64Строка(ДвДанные) ,  XMLСтрока(ДвДанные) - не хочет
25 lamme
 
20.10.20
11:58
миста добавляет http)) - да, это понятно
там
Попытка
        HTTP = Новый HTTPСоединение("http://www.farpost.ru";,,,, Прокси,,SSL );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;
26 lamme
 
20.10.20
11:58
и
Запрос = Новый HTTPЗапрос("/good/packet/api/sync", Заголовки);
27 lamme
 
20.10.20
11:59
блин

Попытка
        HTTP = Новый HTTPСоединение("<тутНетHTTP>http://www.farpost.ru";,,,, Прокси,,SSL );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;
28 lamme
 
20.10.20
12:01
Есть пример на сайте

Пример в виде html-формы:

<form action="http://www.farpost.ru/good/packet/api/sync"; method="post" enctype="multipart/form-data">
    <input type="text" name="packetId" value="11111" />
    <input type="text" name="auth" value=
"fce6b30f476a60731067256780d5092e4cd9f0f6d47f05baf8ea571cf2aeb18733062324b9377e0a79fc6d8ef05e835afd43822b918e688bda1e57262c56b8bc" />
    <input type="file" name="data" />
    <input type="submit" />
</form>


тут <input type="file" name="data" /> - не понял ..
29 lamme
 
20.10.20
12:02
те как их пример
с такой строкой запроса из 1С8 пересекается

"packetId="+Сокрлп(packetId)+"&auth="+Сокрлп(auth)+"&data="+XMLСтрока(дд)
30 lamme
 
20.10.20
12:09
Может так все таки правильнее

Попытка
        HTTP = Новый HTTPСоединение("http://www.farpost.ru";,,,, Прокси,,SSL );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;


мяФайлаОтправки = ПолучитьимяВременногоФайла("txt");

    ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтправки);
    ЗаписьТекста.Записать("packetId="+Сокрлп(packetId)+"&auth="+Сокрлп(auth)+"&data="+Base64Строка(дд));
    ЗаписьТекста.Закрыть();



    HTTP.ОтправитьДляОбработки(имяФайлаОтправки,"/good/packet/api/sync", имяВыходногоФайла, Заголовки);
31 lamme
 
20.10.20
12:09
те без


    Запрос = Новый HTTPЗапрос("http://www.farpost.ru/good/packet/api/sync";, Заголовки);
    Запрос.ПолучитьТелоКакДвоичныеДанные();
?
32 arsik
 
гуру
20.10.20
12:22
POST http://www.farpost.ru/good/packet/api/sync HTTP/1.1
Host: http://www.farpost.ru
Proxy-Connection: keep-alive
Content-Length: 671
Cache-Control: max-age=0
Origin: null
Upgrade-Insecure-Requests: 1
DNT: 1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryWXCr1DduwrPToi2p
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7

------WebKitFormBoundaryWXCr1DduwrPToi2p
Content-Disposition: form-data; name="packetId"

11111
------WebKitFormBoundaryWXCr1DduwrPToi2p
Content-Disposition: form-data; name="auth"

fce6b30f476a60731067256780d5092e4cd9f0f6d47f05baf8ea571cf2aeb18733062324b9377e0a79fc6d8ef05e835afd43822b918e688bda1e57262c56b8bc
------WebKitFormBoundaryWXCr1DduwrPToi2p
Content-Disposition: form-data; name="data"; filename="INFO.XML"
Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8" ?>
<drivers>
    <component progid="AddIn.UCS_EFTPOS" type="ЭквайринговыйТерминал" name="UCS: EFTPOS"/>
</drivers>
------WebKitFormBoundaryWXCr1DduwrPToi2p--
33 arsik
 
гуру
20.10.20
12:23
Вот что нам дает fiddler
34 lamme
 
20.10.20
12:26
ну я так понимаю - все те же парамтры - что и из 1С передаются
35 arsik
 
гуру
20.10.20
12:31
(34) Нет. Ты видишь, что параметры разделяются на boundary?
36 lamme
 
20.10.20
12:32
если честно - то нет, не вижу
37 arsik
 
гуру
20.10.20
12:33
(36) Сиди. Учи. https://habr.com/ru/post/511114/
38 lamme
 
20.10.20
12:36
эта вот эта вот хрень  = fce6b30f476a60731067256780d5092e4cd9f0f6d47f05baf8ea571cf2aeb18733062324b9377e0a79fc6d8ef05e835afd43822b918e688bda1e57262c56b8bc
и есть boundary ?
39 arsik
 
гуру
20.10.20
12:37
(38) Еще учи. Тут даже пример от 1С есть. https://its.1c.ru/db/metod8dev#content:5917:hdoc:http-messages
Узнай для начала, что за  тип такой multipart/form-data
40 lamme
 
20.10.20
12:42
у них в примере нет ничего похожего

<form action="http://www.farpost.ru/good/packet/api/sync"; method="post" enctype="multipart/form-data">
    <input type="text" name="packetId" value="11111" />
    <input type="text" name="auth" value=
"fce6b30f476a60731067256780d5092e4cd9f0f6d47f05baf8ea571cf2aeb18733062324b9377e0a79fc6d8ef05e835afd43822b918e688bda1e57262c56b8bc" />
    <input type="file" name="data" />
    <input type="submit" />
</form>
41 arsik
 
гуру
20.10.20
12:44
(40) Иди учи как работает Web.
42 lamme
 
20.10.20
12:45
а можно как то понять тогда - чего не хватает то в запросе из 1С ?
мне как бы Web не сильно нужен
мне только - скомпоновать запрос - получить ответ.
а как оно там работает между собой ..
43 arsik
 
гуру
20.10.20
12:46
(42) смотри (39)
44 lamme
 
20.10.20
12:47
Разделитель = boundary=----WebKitFormBoundaryWXCr1DduwrPToi2p

ЗаписьДанных.ЗаписатьСтроку("==" + Разделитель);
        ЗаписьДанных.Записать(текст);  

так что ли записать запрос ?
45 arsik
 
гуру
20.10.20
12:49
(44) Умываю руки.
46 lamme
 
20.10.20
12:52
а просто сказать как правильно ?
47 arsik
 
гуру
20.10.20
12:53
(46) Может и зарплату за тебя получить?
48 lamme
 
20.10.20
12:56
мда ...
обращаешься с вопросом - типа туплю, не понимаю.
в ответ тыкают в гамно, а результата ноль.
форум создан для того чтобы спрашивать,а не строить из себя супер умного.
49 acht
 
20.10.20
12:58
(48) У тебя в (0) русским языком написано - "Коллеги .. прошу пинать"
50 lamme
 
20.10.20
12:59
(49)
да. да. я понял.
попинал - спасибо.

подскажи что не так
51 lamme
 
20.10.20
13:02
я ж (0) так и написал

не понимаю логики (
52 acht
 
20.10.20
13:06
Тебе уже дали ссылку на статью на ИТС. Там написано как делать правильно. Тебе остается только включить мозг и сделать у себя аналогично.
Ты же вместо этого предпочитаешь ныть "мне как бы Web не сильно нужен", "а как оно там работает между собой ..".
Нахрен оно сдалось, таким помогать?
53 lamme
 
20.10.20
13:08
да сделал так. сделал
54 lamme
 
20.10.20
13:09
разделитель = "WebKitFormBoundaryWXCr1DduwrPToi2p";
    
    
    SSL = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(),
            Новый СертификатыУдостоверяющихЦентровWindows());

    
    Попытка
        HTTP = Новый HTTPСоединение("http://www.farpost.ru";,,,, Прокси,,SSL );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
    КонецПопытки;

    имяФайлаОтправки = ПолучитьимяВременногоФайла("txt");

    ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтправки);
    ЗаписьТекста.Записать(разделитель);
    ЗаписьТекста.Записать("packetId="+Сокрлп(packetId));
    ЗаписьТекста.Записать(разделитель);
    ЗаписьТекста.Записать("&auth="+Сокрлп(auth));
    ЗаписьТекста.Записать(разделитель);
    ЗаписьТекста.Записать("&data="+дд);
    ЗаписьТекста.Закрыть();


    имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML
    
    
    Заголовки = Новый Соответствие();
    
    Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + разделитель);
    
    
    Запрос = Новый HTTPЗапрос("/good/packet/api/sync", Заголовки);
    Запрос.УстановитьИмяФайлаТела(имяФайлаОтправки);
55 lamme
 
20.10.20
13:09
Результат = HTTP.ОтправитьДляОбработки(Запрос,, имяВыходногоФайла, Заголовки);

а Результат =400 приходит
вместо 200
56 lamme
 
20.10.20
13:49
переделал в такое
57 lamme
 
20.10.20
13:50
Функция ХТТПЗапросПост(АдресСайта,АдресРесурса,ДанныеЗапроса)
    ТекстДляОтправки = "";
    Boundary = Строка(Новый УникальныйИдентификатор());
    
    НомерФайла = 0;
    Для Каждого Элемент Из ДанныеЗапроса Цикл
        ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
        Если ТипЗнч(Элемент.Значение) = Тип("ДвоичныеДанные") Тогда
            ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""data""; filename=""" + Элемент.Ключ + """" + Символы.ПС;
            ТекстДляОтправки = ТекстДляОтправки + "Content-Type: multipart/form-data" + Символы.ПС;
            Данные = Base64Строка(Элемент.Значение);            
        Иначе    
            ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name="""+Элемент.Ключ+"""" + Символы.ПС;
            Данные = Строка(Элемент.Значение);
        КонецЕсли;    
        ТекстДляОтправки = ТекстДляОтправки + Символы.ПС;
        ТекстДляОтправки = ТекстДляОтправки + Данные + Символы.ПС;
       // ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
        
    КонецЦикла;    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
    Заголовки.Вставить("Content-Lenght", XMLСтрока(СтрДлина(ТекстДляОтправки)));
    Запрос = Новый HTTPЗапрос(АдресРесурса,Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТекстДляОтправки, КодировкаТекста.ANSI);
    
    Попытка
        Соединение = Новый HTTPСоединение(АдресСайта);
        Возврат Соединение.ОтправитьДляОбработки(Запрос);  
    Исключение
        Возврат Неопределено;
    КонецПопытки;
КонецФункции

и вызов

        дд = Новый ДвоичныеДанные(ФайлПрайс);
    ДанныеЗапроса.Вставить("auth",auth);
    ДанныеЗапроса.Вставить("packetId",packetId);
    ДанныеЗапроса.Вставить("дд",дд);
    
    Ответ = ХТТПЗапросПост("http://www.farpost.ru","/good/packet/api/sync",ДанныеЗапроса);

//
в результате -
то что уходит ТекстДляОтправки имеет вид как в (32):


--1cea378f-4e38-4db5-959e-6da0eb13180b
Content-Disposition: form-data; name="auth"

123
--1cea378f-4e38-4db5-959e-6da0eb13180b
Content-Disposition: form-data; name="packetId"

456
--1cea378f-4e38-4db5-959e-6da0eb13180b
Content-Disposition: form-data; name="data"; filename="дд"
Content-Type: multipart/form-data

TU9YQ0VMAAgAAQAKAO+7v3s4LDEsMTAsDQp7IiMiLCIiLDEsMSwiIyIsItCv0LfR
i9C6INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIiwi0K/Qt9GL0Log0L/QviDRg9C8
0L7Qu9GH0LDQvdC40Y4iLDB9LA0KezEyOCw3Mn0sDQp7MSwxLA0KezQsMCwNCnsw
fSwxLDEsMyxmNTI3ZGM4OC0xZDM5LTQwYjMtYmNiYi1kOThiNjkwZWFkNjgsMH0s
MH0sMCwNCnswLDB9LA0KezAsMH0sDQp7MCwwfSwNCnswLDB9LA0KezAsMH0sDQp7
MCwwfSwwLDIsMSwwLDAsMTgsMCwNCnsxNiwxLA0KezEsMSwNCnsiIyIsItCQ0YDR
gtC40LrRg9C7In0NCn0sMH0sMSwNCnsxNiwxLA0KezEsMSwNCnsiIyIsItCd0LDQ
uNC80LXQvdC+0LLQsNC90LjQtSJ9DQp9LDB9LDIsDQp7MTYsMiwNCnsxLDEsDQp7
IiMiLCLQnNCw0YDQutCwIn0NCn0sMH0sMywNCnsxNiwxLA0KezEsMSwNCnsiIyIs
ItCc0L7QtNC10LvRjCJ9DQp9LDB9LDQsDQp7MTYsMSwNCnsxLDEsDQp7IiMiLCLQ
k9C+0LQifQ0KfSwwfSw1LA0KezE2LDEsDQp7MSwxLA0KeyIjIiwi0JrRg9C30L7Q
siJ9DQp9LDB9LDYsDQp7MTYsMSwNCnsxLDEsDQp7IiMiLCLQlNCy0LjQs9Cw0YLQ
tdC70YwifQ0KfSwwfSw3LA0KezE2LDEsDQp7MSwxLA0KeyIjIiwi0JLQtdGA0YUv
0J3QuNC3In0NCn0sMH0sOCwNCnsxNiwxLA0KezEsMSwNCnsiIyIsItCf0LXRgNC1
0LQv0JfQsNC0In0NCn0sMH0sOSwNCnsxNiwxLA0KezEsMSwNCnsiIyIsItCb0LXQ
si/Qn9GA0LDQsiJ9DQp9LDB9LDEwLA0KezE2LDEsDQp7MSwxLA0KeyIjIiwi0KbQ
stC10YIifQ0KfSwwfSwxMSwNCnsxNiwzLA0KezEsMSwNCnsiIyIsItCe0L/RgtC4
0LrQsCJ9DQp9LDB9LDEyLA0KezE2LDQsDQp7MSwxLA0KeyIjIiwi0JrQvtC80LzQ
tdC90YLQsNGA0LjQuSJ9DQp9LDB9LDEzLA0KezE2LDUsDQp7MSwxLA0KeyIjIiwi
0KbQtdC90LAifQ0KfSwwfSwxNCwNCnsxNiwxLA0KezEsMSwNCnsiIyIsItCf0YDQ
vtC40LfQstC+0LTQuNGC0LXQu9GMIn0NCn0sMH0sMTUsDQp7MTYsMywNCnsxLDEs
DQp7IiMiLCLQpNC+0YLQvtCz0YDQsNGE0LjQuCJ9DQp9LDB9LDE2LA0KezE2LDYs
DQp7MSwxLA0KeyIjIiwi0JrQvtC90YLRgNCw0LrRgtC90LDRj9Cd0L7QstCw0Y8i
fQ0KfSwwfSwxNywNCnsxNiw2LA0KezEsMSwNCnsiIyIsIk9FTSJ9DQp9LDB9LA0K
ezE4LDAsMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwLDB9LDEs
MCwwLDAsMCwwLDAsMCwwLA0KezB9LA0KezB9LA0KezB9LA0KezEsItCo0LDQv9C6
0LAiLA0KezEsDQp7MSwtMSwwLC0xLDAsMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAt
MDAwMDAwMDAwMDAwfSwwfQ0KfSwiIiwNCnsNCnswLDYsNiwNCnsiTiIsMTAwMH0s
NywNCnsiTiIsMTAwMH0sOCwNCnsiTiIsMTAwMH0sOSwNCnsiTiIsMTAwMH0sMTAs
DQp7Ik4iLDEwMDB9LDExLA0KeyJOIiwxMDAwfQ0KfQ0KfSwNCnswLC0xLC0xLC0x
LC0xLDAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMH0sMCwwLDAs
MCwwLDAsMCwxLDAsMSw2LA0KezE4MzA1LDAsNzIsMCw4LDIsMH0sDQp7MTgzMDUs
MCwxMjAsMCw4LDIsMH0sDQp7NDAzMSwxLDAsMCwwLDAsMyw4MCwwLDAsNCw1fSwN
Cns0MDMxLDEsMCwwLDAsMCwzLDEyMCwwLDAsNCw1fSwNCns0MDMxLDEsMCwwLDAs
MCwzLDU2LDAsMCw0LDV9LA0KezQwMzEsMSwwLDAsMCwwLDMsNDAsMCwwLDQsNX0s
MiwNCns3LDAsMCwxMTAsMCwwLDAsNDAwLDAsMCwwLDAsMCwwLDAsMiwiQ2FsaWJy
aSIsMSwxMDB9LA0KezcsMSw1MTQsDQp7MH0sODAsMSwxMDB9LDAsMCwwLDYsDQp7
MywzLA0Key0xfQ0KfSwNCnszLDMsDQp7LTN9DQp9LA0KezMsMCwNCnswfQ0KfSwN
CnszLDMsDQp7LTIyfQ0KfSwNCnszLDAsDQp7Mjc5Mzg1fQ0KfSwNCnszLDAsDQp7
MTQ1NDU2NTN9DQp9LDAsMCwwLCIiLDAsDQp7MywwLDAsMTAwLDEsMSwwLDEsMSww
LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwiIiwwLDAsMCwwLDAsMCwwfSwNCnswfSww
LDAsMCwxLDB9
58 lamme
 
20.10.20
13:51
а результат все равно 400
те {"reason":"ERROR_REASON_EMPTY_REQUEST"}
Отсутствует обязательный параметр data или auth
59 lamme
 
20.10.20
13:54
все. закрыли вопрос
надо было


дд = Новый ДвоичныеДанные(ФайлПрайс);
    ДанныеЗапроса.Вставить("auth",auth);
    ДанныеЗапроса.Вставить("packetId",packetId);
    ДанныеЗапроса.Вставить("дд",дд);
    ДанныеЗапроса.Вставить("data",ФайлПрайс);

и получилось счастье
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.