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

  • Автор темы Автор темы one
  • Дата начала Дата начала

one

Client
Регистрация
22.09.2015
Сообщения
7 001
Реакции
1 308
Баллы
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"

}

Все ок.
 
экранирование для JSON похоже надо сделать перед POST запросом, аналогично для всех твоих переменных с данными.

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

===================
 
т.е. в содержимом ковычки поставитьв начале и в конце? Попробовал, тоже самое.
 
у тебя совпадают данные? в первом варианте и втором через переменные?
ошибка похожа на то, что указанной категории не существует
 
Все совпадает. Я уже указал что в одно варианте ( с переменными) не проходит а если в ручную указать что постить все проходит.
 
Ну ни в какую не тянуться данные из переменной.
133588
 
И интересно то, что если использовать данные из переменных, в запросе видно они передаются, но серве отдает ошибку а вот если указать данные в ручную, то все в порядке.
 
Последнее редактирование:
где то что то не экранируешь наверное. На жумле тоже есть апи лучше с ним разберись. Через веб это не то работать.
 
Самая частая проблема в этом экшене, это наличие спецсимволов переноса строки в данных в самом конце. Они ломают выполнение POST запроса.
Но лучше всего использовать фидлер и просто сравнить уходящие данные, валидные с невалидными.
 
  • Спасибо
Реакции: backoff и one
Самая частая проблема в этом экшене, это наличие спецсимволов переноса строки в данных в самом конце. Они ломают выполнение POST запроса.
Но лучше всего использовать фидлер и просто сравнить уходящие данные, валидные с невалидными.
Да, точно! Только что сам обнаружил. не нравится перенос строки в содержании передаваемых данных. Как быть?
 
Да, точно! Только что сам обнаружил. не нравится перенос строки в содержании передаваемых данных. Как быть?
Если в самом конце, то удалить как в экшене, так и в строке данных.
Если переносы в теле данных и они ломают запрос, тогда нужно экранировать. В моих данных такого случая не наблюдается, поэтому не подскажу. Можно у ИИ спросить как экранировать данные для запросов чувствительных к переносу строк. Или попробовать экранирование, что выше кидали.
 
Можно у ИИ спросить как экранировать данные для запросов чувствительных к переносу строк.
Ну вот пытаюсь ))) Предлогает использовать 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;
 
Перед отправкой пост запроса, сделай 3 кубика, для каждой переменной с текстом. экранируй. все тексты сделай через переменные. как ещё то объяснить? это рабочий код.

"title": "ФФФФФФ",
"introtext": "<p>Вступление</p>",
"fulltext": "<p>ИИИИИИИИ</p>",
 
  • Спасибо
Реакции: j2082192
Перед отправкой пост запроса, сделай 3 кубика, для каждой переменной с текстом. экранируй. все тексты сделай через переменные. как ещё то объяснить? это рабочий код.

"title": "ФФФФФФ",
"introtext": "<p>Вступление</p>",
"fulltext": "<p>ИИИИИИИИ</p>",
Не, я верю что рабочий, но что то всетаки остается и мешает.
 
Перед отправкой пост запроса, сделай 3 кубика, для каждой переменной с текстом. экранируй. все тексты сделай через переменные. как ещё то объяснить? это рабочий код.

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

Полюбому, либо какой-то символ не дает послать джсон, либо в тексте не экранизированные кавычки
 
Да, ошибка всегда либо в экране символа, либо в переносах
когда делал на рест апи к вп, так я в тексте учитывал вообще все, у меня было где-то 15 кубиков по замене в тексте
типа было "слово" стало \"слово\"
 
Да, ошибка всегда либо в экране символа, либо в переносах
когда делал на рест апи к вп, так я в тексте учитывал вообще все, у меня было где-то 15 кубиков по замене в тексте
типа было "слово" стало \"слово\"
Да как бы визуально смотрю все экранируется, заменяется корректно но API Joomla дает отлуп. Что ему не нравиться пока никак не могу понять.
 
в блокнотах есть подсветка сиволов, не помню где именно, но иногда с помощь. нее можно найти ошибку...
ну и смотри чтоб запрос всегда был в одну строку, это легко отследить, просто скопировав в текстови и посмотреть сколько там строк
 
в блокнотах есть подсветка сиволов, не помню где именно, но иногда с помощь. нее можно найти ошибку...
ну и смотри чтоб запрос всегда был в одну строку, это легко отследить, просто скопировав в текстови и посмотреть сколько там строк
Да пересмотрел уже все, перепробовал кучу вариантов и ни в какую. Буду сегодня изучать что в API говорится.
 
Вобщем это какой то жесткий жесткач! С результатом от ChatGPT никак не получилось а вот с результатом от DeepSeek все завелось моментально. Мистика мистичная! ))) Другого ничего не могу сказать. Всем, огромное спасибо кто вызвался помочь!
 
ищи символы, может такие есть типа как в ворде << слово >> двойные кавычки боковые типа, знаки тире длинные
Да нету ничего, все галаза себе выел, покрайне мере Notepad ++ не показывает. Да и бог с ним, китайцы выручили. ))))
 
  • Спасибо
Реакции: backoff

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