У меня есть требование использовать Spring MVC для перенаправления на внешнюю службу с помощью POST с созданным объектом.Spring MVC Перенаправление с ответом HTTP POST
От чтения this previous question Я понимаю, что это невозможно сделать с помощью перенаправления Spring MVC, поэтому требуется выполнить запрос POST через HTTP-клиент в Java-коде, который я могу выполнить с помощью примера, такого как найдено here.
Мне нужно перенаправить браузер на ответ запроса POST, но я не уверен, как это сделать с помощью Spring MVC.
Контроллер
@RequestMapping(method = RequestMethod.GET, value = "/handoff")
public HttpEntity dispatch(HttpServletRequest request,
@RequestParam(value = "referralURL", required = false) String referralUrl) {
String redirectURL = "http://desinationURL.com/post";
HttpClientHelper httpHelper = new HttpClientHelper();
HttpEntity entity = httpHelper.httpClientPost(redirectURL, null);
// Redirect
return entity;
}
HttpClientHelper.java
public HttpEntity httpClientPost(String url, List<NameValuePair> params) throws ClientProtocolException, IOException {
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
// Request parameters and other properties.
if (params != null) {
httppost.setEntity(new UrlEncodedFormEntity(params, Constants.UTF_8_ENCODING));
}
// Execute and get the response.
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
return entity;
}
Я вижу, что цель службы удара запрос POST успешно, мне нужно прочитать вывод ответа как возврат значение из контроллера MCV, так как он в настоящее время просто возвращает значение 404.
Я включил HttpServletResponse и установите значение состояния и заголовок, как это предлагается, однако не перенаправлять еще возвращающую 404. Нужно ли мне изменить метод для вернуть ответ вместо HttpEntity? –