Как в POST запросе передавать данные из переменной?

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Передаю так:

{
"title": "{-Variable.ARTICLE_TITLE-}",
"catid": 2,
"introtext": "<p>Вступление</p>",
"fulltext": "<p>{-Variable.ARTICLE_TEXT-}</p>",
"state": 1,
"language": "ru-RU"

}

Получаю ошибку: {"errors":[{"title":"Field required: Title\nField required: Category"}]}

Передаю так:

{
"title": "ФФФФФФ",
"catid": 2,
"introtext": "<p>Вступление</p>",
"fulltext": "<p>ИИИИИИИИ</p>",
"state": 1,
"language": "ru-RU"

}

Все ок.
 

izubr

Client
Регистрация
11.05.2011
Сообщения
605
Благодарностей
276
Баллы
63
экранирование для JSON похоже надо сделать перед POST запросом, аналогично для всех твоих переменных с данными.

C#
===================
object ob = project.Variables["ARTICLE_TITLE "].Value;
string json = Global.ZennoLab.Json.JsonConvert.SerializeObject(ob);
return json;

===================
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
т.е. в содержимом ковычки поставитьв начале и в конце? Попробовал, тоже самое.
 

cooki

Client
Регистрация
05.10.2014
Сообщения
259
Благодарностей
60
Баллы
28
у тебя совпадают данные? в первом варианте и втором через переменные?
ошибка похожа на то, что указанной категории не существует
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Все совпадает. Я уже указал что в одно варианте ( с переменными) не проходит а если в ручную указать что постить все проходит.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Ну ни в какую не тянуться данные из переменной.
133588
 

heks

Client
Регистрация
01.10.2013
Сообщения
1 405
Благодарностей
402
Баллы
83
rest api используй если это WP
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
И интересно то, что если использовать данные из переменных, в запросе видно они передаются, но серве отдает ошибку а вот если указать данные в ручную, то все в порядке.
 
Последнее редактирование:

heks

Client
Регистрация
01.10.2013
Сообщения
1 405
Благодарностей
402
Баллы
83
где то что то не экранируешь наверное. На жумле тоже есть апи лучше с ним разберись. Через веб это не то работать.
 
Регистрация
05.04.2025
Сообщения
56
Благодарностей
16
Баллы
8
Самая частая проблема в этом экшене, это наличие спецсимволов переноса строки в данных в самом конце. Они ломают выполнение POST запроса.
Но лучше всего использовать фидлер и просто сравнить уходящие данные, валидные с невалидными.
 
  • Спасибо
Реакции: backoff и one

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Самая частая проблема в этом экшене, это наличие спецсимволов переноса строки в данных в самом конце. Они ломают выполнение POST запроса.
Но лучше всего использовать фидлер и просто сравнить уходящие данные, валидные с невалидными.
Да, точно! Только что сам обнаружил. не нравится перенос строки в содержании передаваемых данных. Как быть?
 
Регистрация
05.04.2025
Сообщения
56
Благодарностей
16
Баллы
8
Да, точно! Только что сам обнаружил. не нравится перенос строки в содержании передаваемых данных. Как быть?
Если в самом конце, то удалить как в экшене, так и в строке данных.
Если переносы в теле данных и они ломают запрос, тогда нужно экранировать. В моих данных такого случая не наблюдается, поэтому не подскажу. Можно у ИИ спросить как экранировать данные для запросов чувствительных к переносу строк. Или попробовать экранирование, что выше кидали.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Можно у ИИ спросить как экранировать данные для запросов чувствительных к переносу строк.
Ну вот пытаюсь ))) Предлогает использовать Newtonsoft.Json, но что-то не срабатывает или я его не понимаю. Вот пример что выдал:

C#:
using Newtonsoft.Json;

var payload = new {
    data = new {
        type = "articles",
        attributes = new {
            title = project.Variables["ARTICLE_TITLE"].Value,
            catid = 2,
            fulltext = project.Variables["ARTICLE_TEXT"].Value,
            state = 1,
            language = "ru-RU"
        }
    }
};

string json = JsonConvert.SerializeObject(payload);
project.Variables["jsonBody"].Value = json;
 

izubr

Client
Регистрация
11.05.2011
Сообщения
605
Благодарностей
276
Баллы
63
Перед отправкой пост запроса, сделай 3 кубика, для каждой переменной с текстом. экранируй. все тексты сделай через переменные. как ещё то объяснить? это рабочий код.

"title": "ФФФФФФ",
"introtext": "<p>Вступление</p>",
"fulltext": "<p>ИИИИИИИИ</p>",
 
  • Спасибо
Реакции: j2082192

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Перед отправкой пост запроса, сделай 3 кубика, для каждой переменной с текстом. экранируй. все тексты сделай через переменные. как ещё то объяснить? это рабочий код.

"title": "ФФФФФФ",
"introtext": "<p>Вступление</p>",
"fulltext": "<p>ИИИИИИИИ</p>",
Не, я верю что рабочий, но что то всетаки остается и мешает.
 

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 870
Благодарностей
1 232
Баллы
113
Перед отправкой пост запроса, сделай 3 кубика, для каждой переменной с текстом. экранируй. все тексты сделай через переменные. как ещё то объяснить? это рабочий код.

"title": "ФФФФФФ",
"introtext": "<p>Вступление</p>",
"fulltext": "<p>ИИИИИИИИ</p>",
Варианта всегда два почему не отправляетс:
1. Сравни джсон который не отправляется с тем который отправляется тут https://jsoncompare.org/#
2. Проверь в нотепад++ включив невидимые символы.

Полюбому, либо какой-то символ не дает послать джсон, либо в тексте не экранизированные кавычки
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 225
Благодарностей
6 556
Баллы
113
Да, ошибка всегда либо в экране символа, либо в переносах
когда делал на рест апи к вп, так я в тексте учитывал вообще все, у меня было где-то 15 кубиков по замене в тексте
типа было "слово" стало \"слово\"
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Да, ошибка всегда либо в экране символа, либо в переносах
когда делал на рест апи к вп, так я в тексте учитывал вообще все, у меня было где-то 15 кубиков по замене в тексте
типа было "слово" стало \"слово\"
Да как бы визуально смотрю все экранируется, заменяется корректно но API Joomla дает отлуп. Что ему не нравиться пока никак не могу понять.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 225
Благодарностей
6 556
Баллы
113
в блокнотах есть подсветка сиволов, не помню где именно, но иногда с помощь. нее можно найти ошибку...
ну и смотри чтоб запрос всегда был в одну строку, это легко отследить, просто скопировав в текстови и посмотреть сколько там строк
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
в блокнотах есть подсветка сиволов, не помню где именно, но иногда с помощь. нее можно найти ошибку...
ну и смотри чтоб запрос всегда был в одну строку, это легко отследить, просто скопировав в текстови и посмотреть сколько там строк
Да пересмотрел уже все, перепробовал кучу вариантов и ни в какую. Буду сегодня изучать что в API говорится.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
Вобщем это какой то жесткий жесткач! С результатом от ChatGPT никак не получилось а вот с результатом от DeepSeek все завелось моментально. Мистика мистичная! ))) Другого ничего не могу сказать. Всем, огромное спасибо кто вызвался помочь!
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 225
Благодарностей
6 556
Баллы
113
ищи символы, может такие есть типа как в ворде << слово >> двойные кавычки боковые типа, знаки тире длинные
 

one

Client
Регистрация
22.09.2015
Сообщения
6 912
Благодарностей
1 290
Баллы
113
ищи символы, может такие есть типа как в ворде << слово >> двойные кавычки боковые типа, знаки тире длинные
Да нету ничего, все галаза себе выел, покрайне мере Notepad ++ не показывает. Да и бог с ним, китайцы выручили. ))))
 
  • Спасибо
Реакции: backoff

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)