Как изменить мой код на Spring Boot, когда у меня есть один запрос и несколько возвратов? - PullRequest
0 голосов
/ 31 декабря 2018

Если я не использую Spring Boot, мои коды работают хорошо:

public void dealResult(HttpServletRequest request, HttpServletResponse response) throws Exception {
    long sartTime = System.currentTimeMillis();
    while (true) {
        Student student = getStudentResult();
        if (student != null) {
            response.setContentType("text/html;charset=UTF-8");
            Writer writer = response.getWriter();
            String ret = student.getName() + "is ok";
            writer.write(ret);
            writer.close();
            if (student.isAllOver) {
                break;
            }
            if (System.currentTimeMillis() - startTime > 60000) {
                response.setContentType("text/html;charset=UTF-8");
                Writer writer = response.getWriter();
                String ret = “Deal over time ";
                writer.write(ret);
                writer.close();
                break;
            }
        }
    }
}

Но теперь я хочу изменить свой код на Spring Boot, если верну один результат, я могу изменить код следующим образом

@PostMapping
@RequestMapping(value = {"/"}, produces = {"application/json; charset=UTF-8"})
public ResponseEntity<Object> dealResult(HttpServletRequest request) {
    return new ResponseEntity<>("Deal over time", HttpStatus.OK);
}

Как изменить мой код для многократного возврата?

1 Ответ

0 голосов
/ 31 декабря 2018

Ваши слова являются мультиреакцией, здесь был объяснен мульти-ответ https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#Body_2

Кажется, то, что вам нужно, не должно называться "мульти-ответом". Вам нужен ответ в нескольких случаях иначе?Отдельно для каждого случая в структуре управления, а затем вернуть соответствующий код HttpStatus.Вам может понадобиться что-то вроде этого

@PostMapping
@RequestMapping(value = {"/"}, produces = {"application/json; charset=UTF-8"})
public ResponseEntity<Object> dealResult(HttpServletRequest request, HttpServletResponse response) throws Exception {
    long sartTime = System.currentTimeMillis();
    Student student = getStudentResult();
    if (student != null) {
        response.setContentType("text/html;charset=UTF-8");
        Writer writer = response.getWriter();
        String ret = student.getName() + "is ok";
        writer.write(ret);
        writer.close();
        if (student.isAllOver) {
            return new ResponseEntity<>("Deal over time", HttpStatus.OK);
        } else {
            if (System.currentTimeMillis() - startTime > 60000) {
                response.setContentType("text/html;charset=UTF-8");
                Writer writer = response.getWriter();
                String ret = “Deal over time ";
                writer.write(ret);
                writer.close();
                return new ResponseEntity<>("Deal over time", HttpStatus.REQUEST_TIMEOUT);
            } else {
                return new ResponseEntity<>("Error", HttpStatus.INTERNAL_SERVER_ERROR);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...