У меня есть строительный блок с использованием Spring MVC.
Контроллер выглядит так:
@RequestMapping(value = "/addUpdateUser",method = {RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public String getAddUpdateUser(HttpServletRequest request) {
String xml = request.getParameter("xml");
....
Когда я вызываю это из своего приложения следующим образом:
URI url = new URI(baseUrl+"/users/addUpdateUser");
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
он терпит неудачу... Я получаю веб-страницу, в которой говорится, что у меня нет доступа к этой странице, но если я изменю код на HttpGet следующим образом:
URI url = new URI(baseUrl+"/users/addUpdateUser");
HttpClient httpclient = HttpClients.createDefault();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
Он отлично работает.
Почему я не могу сделать POST на доске Buildingblock?
Черная доска. По умолчанию блокирует внешние сообщения.
Вам нужно будет добавить аннотацию @NoXSRF
над @RequestMapping
, так как это позволит вам получить к ней доступ.