|
1c Post запрос ошибка 422 | ☑ | ||
---|---|---|---|---|
0
andrey i1c
21.01.20
✎
17:34
|
Прилагаю текст запроса. Данные адреса сервера сейчас условные. На реальных данных сервера при выполнении происходит ошибка 422. Я полагаю все соединение проходит, но сам json файл не записывает в тело данные. Вот тут это делается запросPOST.УстановитьТелоИзСтроки("json=" + СтрокаJS, "CESU-8");
в файл ответа приходит ответ {"json":["JSON \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c"]} В чем может быть дело? ЗаписьJSON = Новый ЗаписьJSON; ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", Истина); ЗаписьJSON.УстановитьСтроку(ПараметрыJSON); ЗаписатьJSON(ЗаписьJSON, МассивRoot); СтрокаJS = ЗаписьJSON.Закрыть(); ФайлОтвета = "C:\Users\User\Documents\temp\test.txt"; Если Объект.SLL Тогда HTTPСоединение = Новый HTTPСоединение("199.6.2.51", 443,,,,,Новый ЗащищенноеСоединениеOpenSSL(Неопределено,Неопределено)); Иначе HTTPСоединение = Новый HTTPСоединение("199.6.2.51", 80); КонецЕсли; Заголовки = Новый Соответствие; Заголовки.Вставить("Content-type", "application/json"); запросPOST = Новый HTTPЗапрос("/v5/kontragets/update?token=авлолыводлфыовдв", Заголовки); запросPOST.УстановитьТелоИзСтроки("json=" + СтрокаJS, "CESU-8"); ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета); Если НЕ (ОтветHTTP.КодСостояния >= 200 И ОтветHTTP.КодСостояния < 300) Тогда Сообщить("Выгрузка пакета не произведена: Код ответа сервера - "+ОтветHTTP.КодСостояния+", Ответ: "+ОтветHTTP.ПолучитьТелоКакСтроку()); Иначе Сообщить("Успешно выгружен пакет"); КонецЕсли; |
|||
1
Ёпрст
21.01.20
✎
17:49
|
(0) а точно, такая кодировка нужна ?
И точно нужна строка "json=" в теле ? |
|||
2
andrey i1c
21.01.20
✎
17:52
|
(1) я по разному пробовал скорее даже вот тут что то не так происходит ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета);
|
|||
3
Ёпрст
21.01.20
✎
17:55
|
ну и сам json, нет ни начала массива, ни конца..
|
|||
4
Ёпрст
21.01.20
✎
17:55
|
в массиврут что хоть ? И какая строка json на выходе ?
|
|||
5
pechkin
21.01.20
✎
17:59
|
он тебе говорит
json не должен быть пустым |
|||
6
Ёпрст
21.01.20
✎
18:00
|
Мот так, не ?
|
|||
7
pechkin
21.01.20
✎
18:00
|
может нужно посылать
{"json": ТекстJSON} |
|||
8
andrey i1c
21.01.20
✎
18:03
|
Строка json
[ { "code_1c": 65, "name": "Багет особый 300 гр", "price_base": "15", "price_retail": "60", "currency": "RUB", "weight": "185", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "Вкусный хлеб", "categories_id": 69 }, { "code_1c": 66, "name": "Багет Провансаль 200 гр", "price_base": "16", "price_retail": "64", "currency": "RUB", "weight": "240", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 69 }, { "code_1c": 67, "name": "Батон нарезной 300 гр", "price_base": "17", "price_retail": "68", "currency": "RUB", "weight": "315", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 69 }, { "code_1c": 68, "name": "Булочка улитка с корицей 100 гр", "price_base": "15,5", "price_retail": "62", "currency": "RUB", "weight": "152", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 69 }, { "code_1c": 59, "name": "Вак Балиш 110 гр", "price_base": "20", "price_retail": "80", "currency": "RUB", "weight": "100", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 70 }, { "code_1c": 60, "name": "Ватрушка с творогом 90 гр", "price_base": "30", "price_retail": "120", "currency": "RUB", "weight": "0", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 70 }, { "code_1c": 61, "name": "Жюльен 140 гр", "price_base": "25", "price_retail": "100", "currency": "RUB", "weight": "0", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 70 }, { "code_1c": 64, "name": "Закрытая пицца с курицей 140 гр", "price_base": "31,5", "price_retail": "126", "currency": "RUB", "weight": "280", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 71 }, { "code_1c": 62, "name": "Киш с картофелем и грибами 90 гр", "price_base": "11", "price_retail": "44", "currency": "RUB", "weight": "0", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 70 }, { "code_1c": 63, "name": "Киш с курицей и сыром 90 гр", "price_base": "24", "price_retail": "96", "currency": "RUB", "weight": "0", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 70 }, { "code_1c": 57, "name": "Кокрок с творогом 85 гр", "price_base": "19", "price_retail": "76", "currency": "RUB", "weight": "50", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 72 }, { "code_1c": 58, "name": "Кокрок с яблоком 90 гр", "price_base": "20,55", "price_retail": "82,2", "currency": "RUB", "weight": "150", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "", "categories_id": 72 } ] |
|||
9
andrey i1c
21.01.20
✎
18:08
|
(6) та же ошибка 422
|
|||
10
Ёпрст
21.01.20
✎
18:10
|
(8) у тя нет начала массива в коде - [] не будет у тя в строке
|
|||
11
andrey i1c
21.01.20
✎
18:10
|
(7) не помогает
|
|||
12
andrey i1c
21.01.20
✎
18:13
|
(10) это из за массива, но в целом это все строка https://yadi.sk/i/bWm7d7YlDLIeag
|
|||
13
Garykom
гуру
21.01.20
✎
18:13
|
(0) Для начала возьми Postman (или банальный curl) и проверь что твой CESU-8 точно работает на тестовом примере.
Вот если все ок то тогда уже трабла в 1С. |
|||
14
pechkin
21.01.20
✎
18:14
|
попробуй такой
{ json: [ { "code_1c": 65, "name": "Багет особый 300 гр", "price_base": "15", "price_retail": "60", "currency": "RUB", "weight": "185", "unit": "г", "discount": 0, "discount_unit": "v", "type": 1, "time_creation": 0, "new": 0, "top": 0, "knd": 0, "kfe": 0, "sku": 0, "hide": 0, "specification_ids": "123,456", "description": "Вкусный хлеб", "categories_id": 69 } ] } |
|||
15
andrey i1c
21.01.20
✎
18:15
|
(13) там работает в Postman
|
|||
16
andrey i1c
21.01.20
✎
18:15
|
пробовал из 1с в таком формате таже ошибка
{ "code_1c": 185 } |
|||
17
Garykom
гуру
21.01.20
✎
18:21
|
(15) Значит добейся чтобы из 1С была такая же строка как из Postman.
Для проверки подними сервис у себя и на него стучишься Postman и 1C и смотришь в чем разница. Сервис/сервер банально на Go поднять https://golang.org/doc/articles/wiki/#tmp_1
или на NodeJS https://code.tutsplus.com/ru/tutorials/fake-rest-api-up-and-running-using-json-server--cms-27871 |
|||
18
Garykom
гуру
21.01.20
✎
18:27
|
(17)+ Только вместо одного r.URL добавить вывод в консоль (или я бы в файл сделал) всех данных из запроса (r *http.Request) в включая заголовок и тело.
И сразу понятно кто парит ты из 1С или что. |
|||
19
Ёпрст
21.01.20
✎
20:31
|
(0) Так еще, на всякий
|
|||
20
Ёпрст
21.01.20
✎
20:34
|
|
|||
21
andrey i1c
22.01.20
✎
10:26
|
(20) спасибо большое, вопрос решен, ваш метод Отработал! еще раз благодарен!скорее тут дело и было в параметрах заголовках.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |