#oracle #spring-mvc
#Oracle #spring-mvc
Вопрос:
Мне нужна помощь. Я отправляю http-запрос из базы данных oracle в Spring mvc. И в ответ я получаю это HTTP Status 400 – Bad Request
Как я могу это исправить? Добавлено utl_http.set_body_charset (req, 'WINDOWS-1251');
, и это тоже не помогло.
С латинскими буквами все работает хорошо. Как только я перехожу на кириллицу, я получаю сообщение об ошибке
запрос (plsql)
declare
content varchar2(4000) := '{"to":"996707332572","from":"Текст","text":"Тест текст"}';
begin
req := utl_http.begin_request(url, 'POST',' HTTP/1.1');
utl_http.set_header(req, 'user-agent', 'mozilla/4.0');
utl_http.set_header(req, 'Content-Type', 'application/json');
utl_http.set_header(req, 'Content-Length', length(content));
utl_http.set_body_charset ('UTF-8');
utl_http.write_text(req, content);
res := utl_http.get_response(req);
метод в контроллере
@ResponseBody
@RequestMapping(value = "/send-msg",method = RequestMethod.POST,
produces = "application/xml; charset=utf-8")
public Object sendMsg(@RequestBody SmsBody smsBody) throws Exception
Комментарии:
1. Скорее всего, это проблема с URL, а не с телом запроса. Можете ли вы показать URL-адрес? И, вероятно, она отклоняется веб-сервером до того, как попадет в ваш весенний код.
2. И как выглядит тело запроса? Это данные в кодировке JSON, XML или URL? В последнем случае проблема также может заключаться в данных, закодированных в URL.
3. @Codo Сейчас я исправлю соответствующие коды. Вначале я хотел проверить, правильно ли передаются данные. Теперь я изменил код для отправки json. Теперь я получаю неверный запрос
4. @Codo исправил код запроса
5. Указывает контроллер MVC
produces = "application/xml; charset=utf-8"
. Вопреки распространенному мнению, это не инструкция для контроллера для генерации XML. Вместо этого это инструкция фильтра, в которой говорится: этот метод может использоваться только для запросов, способных принимать XML. Поэтому вам, вероятно, понадобится дополнительный HTTP-заголовок :Accept: application/xml
.