Stealtwatch SMC: ошибка REST API Invalid JSON
-
Здравствуйте, команда!
Когда я выполняю POST (PowerShell), SMC возвращает ошибку: {
"errors" : [ {
"code" : 5060,
"message" : "The Request received is invalid"
}, "Invalid JSON." ]
} Вот часть скрипта PowerShell, который я использую: # JSON query body
$body = '{
"startDateTime": "2026-02-10T08:00:00Z",
"endDateTime": "2026-02-10T08:05:00Z",
"recordLimit": 10,
"subject": {
"orientation": "CLIENT",
"ipAddresses": {
"includes": ["192.168.0", "10.20"]
}
},
"peer": {
"ipAddresses": {
"includes": ["192.168.0", "10.20"]
},
},
"flow": {
"tcpUdpPorts": {
"includes": ["80-9000/tcp", "67-68/udp"]
},
"flowDirection": "BIDIRECTIONAL",
}' # POST query
curl.exe -k -X POST "https://{smc-address}/sw-reporting/v2/tenants/{tenant-id}/flows/queries"-H "Cookie: stealthwatch.jwt=$JWT"
-H "X-XSRF-TOKEN: $XSRF_TOKEN"-H "Content-Type: application/json"
-d $body Идентификатор арендатора и теги (имя, ID) извлечены успешно
Все, что я делаю, соответствует этой документации:
https://developer.cisco.com/docs/stealthwatch/enterprise/reporting-api-version-2/ Возможно, я что-то упустил в своем json Версия
Stealthwatch — 7.5.3 -
Привет,
Jesus.
Я пробовал с запятой и без запятой — результат тот же.
Проверил свой запрос с помощью jsonlint, он был зеленый.
Вставил этот запрос после флага -d, но ничего не изменилось, та же ошибка. curl.exe -k -X POST "https://{scm-address}/sw-reporting/v2/tenants/{tenant-id}/flows/queries"-H "Cookie: stealthwatch.jwt=$JWT"-H "X-XSRF-TOKEN: $XSRF_TOKEN"-H "Content-Type: application/json"-d '{ "startDateTime": "2026-02-18T08:00:00Z", "endDateTime": "2026-02-18T08:36:00Z", "recordLimit": 50
}' Я запустил этот скрипт из Linux (преобразовал в bash), и он работает как ожидалось curl -k -X POST "https://{scm-address}/sw-reporting/v2/tenants/{tenant-id}/flows/queries" \ -H "Cookie: stealthwatch.jwt=$JWT" \ -H "X-XSRF-TOKEN: $XSRF_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "startDateTime": "2026-02-18T08:00:00Z", "endDateTime": "2026-02-18T08:36:00Z", "recordLimit": 50
}' На данный момент я решил использовать Linux для этой задачи, поэтому эта тема для меня больше не актуальна.
Я обсудил эту проблему со своим коллегой-администратором Windows, но он тоже не смог мне помочь.
Мы думаем, что PowerShell каким-то образом неявно изменяет запрос json, и SMC не может его понять
. Спасибо. -
Я не знаю Stealthwatch, но поскольку ошибка связана с недействительным json, я проверил vscode json linter и увидел ошибку в запятой после «BIDIRECTIONAL». "flowDirection"
:
"BIDIRECTIONAL"
,
<This comma at the end Исходя из опыта работы с json, запятая нужна только в том случае, если в списке/объекте есть несколько элементов. Удалите запятую и попробуйте еще раз. ![JesusIllescas_0-1770985778168.png]

-
Это не помогло, та же ошибка.
Я даже упростил запрос, но проблема осталась. # JSON query body
$body = @{ "startDateTime" = "2026-02-01T08:00:00Z" "endDateTime" = "2026-02-10T08:50:00Z"
} $jsonBody = $body | ConvertTo-Json -Compress # POST query
curl.exe -k -X POST "https://{scm-address}/sw-reporting/v2/tenants/{tenant-id}/flows/queries"-H "Cookie: stealthwatch.jwt=$JWT"-H "X-XSRF-TOKEN: $XSRF_TOKEN"-H "Content-Type: application/json"-d $jsonBody -
Привет
[, @mofnoc] попробуй следующее: $body = @{ "startDateTime" = "2026-02-01T08:00:00Z", "endDateTime" = "2026-02-10T08:50:00Z"
} Я добавил запятую, учитывая, что у вас два элемента. Я предлагаю использовать json linter, чтобы исключить ошибки из-за пропущенных элементов. Я использую vscode, но есть и онлайн-инструменты, такие как
https://jsonlint.com/.
Просто убедитесь, что вы не размещаете в Интернете конфиденциальные данные. Если linter даст зеленый свет, то я бы пока отбросил переменные и вставил простой текст json прямо в флаг -d curl. -
Спасибо, что поделились тем, что сработало для вас
[, @mofnoc.]
Я не пользователь Windows, поэтому для меня это странно. Я отмечу ваш последний комментарий как решение.
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти