Эта статья в основном изучает соответствующий контент о правильном использовании @Requestbody, следующим образом.
Недавно я взял на себя работу с коллегой, который собирался уйти. Проект, который я взял на себя, был построен с Springboot. Я видел этот метод письма:
@Requestmapping ("dothis") открытая строка Dothis (httpservlectrequest, @requestparam ("id") Long Id, // Пользователь @RequestParam ("Back_url") String Back_url, // адрес обратного обращения @Requestbody testentity json_data // JSON Данные для класса Java Entity) {//... ... ... .../...Это метод сопоставления запросов, а затем введите URL с браузером: http://127.0.0.1:8080/test/dothis?id=1&back_url=url&json_data=?
В этом методе используйте @RequestParam, чтобы получить параметры, а затем используйте @Requestbody, чтобы преобразовать параметры в формате JSON в тип Java
При запуске была найдена ошибка: отсутствует необходимый корпус запроса.
@Requestbody требует использования MappingJackson2httpmessageConverter для загрузки, но в официальной документации Springboot упоминается, что в этом уже загружено по умолчанию, и нет ошибок при написании строк JSON и Javabeans.
Следовательно, учитывая, что это должно быть проблемой запроса типа контента, поскольку невозможно определить тип контента, используя браузер для входа в URL, пружина не может найти корпус запроса
Чтобы подтвердить эту идею, напишите класс запросов самостоятельно:
String add_url = "http://127.0.0.1:8080/test/dothis"; Url url = new URL (add_url); Httpurlconnection connection = (httpurlconnection) url.openconcenection (); connection.setDoinput (true); connection.setDoOutput (true); connection.setrequestmethod ("post"); connection.setusecaches (false); Connection.SetInStanceFollowRideRects (True); Connection.SetRequestProperty ("Content-Type", "Application/json"); connection.connect (); DataOutputStream Out = new DataOutputStream (connection.getOutputStream ()); JsonObject obj = new jsonObject (); obj.put ("code", -1002); obj.put ("Сообщение", "MSG"); out.writebytes (obj.tostring ()); out.flush (); out.close ();Запрос все еще не удался. После отладки я обнаружил, что все аннотации @RequestParam должны быть удалены, чтобы добиться успеха.
Суммировать
1. @requestbody должен анализировать все параметры запроса как JSON. Следовательно, значение Key = не может быть включено в URL -адрес запроса. Все параметры запроса являются JSON
2. При входе URL -адресу прямо через браузер @Requestbody не может получить объект JSON. Вам необходимо использовать запрос на программирование Java или метод, основанный на AJAX, и установить тип контента в приложение/JSON
Выше всего посвящено интерпретации правильного использования @requestbody, и я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!