|
JSON-rpc в 1С ошибка >400 Bad Request | ☑ | ||
---|---|---|---|---|
0
Юзер123
naïve
10.06.21
✎
09:00
|
Доброго времени.
Продолжаю разбираться с подключением 1С к стороннему ПО. Пробую получить данные через JSON-rpc На стороне стороннего По установлен пакет jsonpc . На питоне программист на той стороне показывал свой код подключения. data = { "jsonrpc": "2.0", "method": "call", "params": { "service": "object", "method": "execute", "args": [ "1111", id_1, "pass", "product", "search", [ ["id", "in", [888888, 777777]] ], ["default_code", "type", "series",] ], }, "id": random.randint(0, 1000000000), } req = urllib.request.Request(url="https://test.ru/jsonrpc", data=json.dumps(data).encode(), headers={ "Content-Type":"application/json", Пробую в 1С СерверПриемник = "test.ru"; АдресСтраницыНаСервере = "/jsonrpc.php"; Таймаут = 120; HTTP = Новый HTTPСоединение(СерверПриемник,,,,,Таймаут,,); HTTPЗапрос = Новый HTTPЗапрос(АдресСтраницыНаСервере); HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); СтрокаJSON = "{ | ""jsonrpc"": ""2.0"", | ""method"": ""call"", | ""params"": { | ""service"": ""object"", | ""method"": ""execute"", | ""args"": [ | ""1111"", id_1, ""pass"", | ""product"", | ""search"", | [ | [""id"", ""in"", [888888, 777777]] | ], [""default_code"", ""type"", ""series"",] | ], | }"; ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, СтрокаJSON); РезультатСтрока = ЗаписьJSON.Закрыть(); HTTPЗапрос.УстановитьТелоИзСтроки(ЗаписьJSON,КодировкаТекста.UTF8,); ФайлРезультат = ПолучитьИмяВременногоФайла(); HTTP.ОтправитьДляОбработки(HTTPЗапрос,ФайлРезультат); ТекстовыйФайлОтвета = Новый ТекстовыйДокумент; ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8); СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст(); Сообщить(СтрокаОтветаСервера); возвращает <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>400 Bad Request</title> <h1>Bad Request</h1> <p>Invalid JSON data: '{"jsonrpc":"2.0","method":"call","params":{"service":"object","method":"execute","args":["1111",id_1,"pass",product","search",[["id","in",[888888,777777]]],["default_code","type","series",]],}'</p> |
|||
1
Юзер123
naïve
10.06.21
✎
09:04
|
Пробовал без ЗаписьJson тот же результат.
СтрокаJSON = "{ | ""jsonrpc"": ""2.0"", | ""method"": ""call"", | ""params"": { | ""service"": ""object"", | ""method"": ""execute"", | ""args"": [ | ""1111"", id_1, ""pass"", | ""product"", | ""search"", | [ | [""id"", ""in"", [888888, 777777]] | ], [""default_code"", ""type"", ""series"",] | ], | }"; HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON ,КодировкаТекста.UTF8,); ФайлРезультат = ПолучитьИмяВременногоФайла(); HTTP.ОтправитьДляОбработки(HTTPЗапрос,ФайлРезультат); ТекстовыйФайлОтвета = Новый ТекстовыйДокумент; ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8); СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст(); Сообщить(СтрокаОтветаСервера); |
|||
2
Garykom
гуру
10.06.21
✎
09:45
|
>АдресСтраницыНаСервере = "/jsonrpc.php";
".php" науя? |
|||
3
Garykom
гуру
10.06.21
✎
09:46
|
||||
4
Garykom
гуру
10.06.21
✎
09:50
|
(0) и у тебя полная тупость с логикой
json в текстовой строек уже нет смысла сразу как в (2) СтрокаJSON = "{... HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON... |
|||
5
Почему 1С
10.06.21
✎
09:51
|
Что за манипуляции не понятные с
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, СтрокаJSON); РезультатСтрока = ЗаписьJSON.Закрыть(); Что у тебя получается в результате в РезультатСтрока ? у тебя же уже есть готовая json строка HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON,КодировкаТекста.UTF8,); |
|||
6
Garykom
гуру
10.06.21
✎
09:51
|
(4) тьфу т.е. в (1) правильней чем в (0)
|
|||
7
Garykom
гуру
10.06.21
✎
09:53
|
(0) Короче наймите программиста 1С
Питониста же нашли где то )) |
|||
8
arsik
гуру
10.06.21
✎
10:19
|
(0) А куда последний "id" потерял?
|
|||
9
arsik
гуру
10.06.21
✎
10:24
|
+(8) У тебя даже по фигурным скобкам видно что ты потерял часть. Собирай JSON через структуру и массив. И нагляднее и не ошибешься. https://its.1c.ru/db/v836doc#bookmark:dev:TI000001491
|
|||
10
arsik
гуру
10.06.21
✎
10:28
|
ВОт еще для примера. https://wonderland.v8.1c.ru/blog/sredstva-raboty-s-json/
|
|||
11
lubitelxml
10.06.21
✎
10:29
|
(9) +1 Не надо пытаться записать строку в json, используй средства для формирования json.
|
|||
12
Юзер123
naïve
10.06.21
✎
10:43
|
(10) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |