Отправить ответ в виде пары ключ-значение от контроллера Spring? - PullRequest
0 голосов
/ 25 октября 2019

В нашем приложении мы получаем объект запроса от третьей стороны в виде данных формы. Мы обрабатываем данные формы в контроллере Spring и отправляем ответ обратно. В контроллере пружины мы написали следующую логику.

@RequestMapping(value = "/oci/html/setup", method = RequestMethod.POST, 
produces = {MediaType.TEXT_HTML_VALUE }, consumes = { MediaType.APPLICATION_FORM_URLENCODED_VALUE })
@ResponseStatus(value= HttpStatus.OK)
@ResponseBody
public String handleOciSetUpRequest1(OciSetupRequest reqObject)
{

    if (LOG.isDebugEnabled())
    {
        LOG.debug("Oci Setup Request Object: " + reqObject.toString());
    }

    final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);

    return response.toString();

}

Объект запроса:

identity: 1234
sharedSecret: password

Ожидаемый объект ответа:

SessionId=1236547878
URL=https://sample.com

Здесь нам нужно отправитьответ в виде пары ключ-значение html ответ. В этом может помочь любой Как отправить html-ответ в виде пары ключ-значение из контроллера Spring.

Если предоставленный пример кода будет оценен по достоинству ....

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Я вижу, что вы пытаетесь вернуться в теле ответа, лучше всего будет с помощью контроллера отдыха, а также добавить обработку исключений, с тем, что у вас будет:

@RestController
public class SomeClassController {

    @PostMapping("/oci/html/setup")
    public ResponseEntity<?> reportRecords(OciSetupRequest reqObject) {
     Map<String, Object> response = new HashMap<>();
        try {
             if (LOG.isDebugEnabled())
             {
                LOG.debug("Oci Setup Request Object: " + reqObject.toString());
             }

             final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);
             response.put("SessionId", "1236547878");
             response.put("URL", "https://sample.com");
            return new ResponseEntity<>(response, HttpStatus.OK);
        } catch (Exception e) {
            e.printStackTrace();
            response.put("message", e.getMessage());
            return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }   
}
0 голосов
/ 25 октября 2019

Используйте карту:

@ResponseBody
public Map<String, String> handleOciSetUpRequest1(OciSetupRequest reqObject)
{

    if (LOG.isDebugEnabled())
    {
        LOG.debug("Oci Setup Request Object: " + reqObject.toString());
    }

    final OciSetupResponse response = getOciService().processOciSetUpRequest(reqObject);

    Map<String, String> responseMap - new HashMap();
    map.put("SessionId", "someValue");
    map.put("URL", "someValue");

    return responseMap; 
    //returns JSON {"SessionId":"someValue", "URL":"someValue"}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...