Получение HTTP-кода ответа 200 в ответе API даже после возврата ResponseEntity с помощью HttpStatus.BAD_REQUEST - PullRequest
0 голосов
/ 05 сентября 2018

Я использовал решение, указанное в https://stackoverflow.com/a/16250729/351903 -

@Path("api/path")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public ResponseEntity<String> handshakeForTxn()
    {

       return new ResponseEntity<String>(HttpStatus.BAD_REQUEST);
    }

Я все еще получаю статус ответа 200 -

Server responded with a response on thread XNIO-3 task-2 2 < 200 2 < Content-Type: application/json 

Хотя тело ответа содержит statusCodeValue, для которого установлено значение 400 -

{ "headers": {}, "body": null, "statusCode": "BAD_REQUEST", "statusCodeValue": 400 }

Ответы [ 3 ]

0 голосов
/ 07 сентября 2018

Правильный способ сделать это будет

Response.noContent (). Статус (Response.Status.NOT_FOUND) .build ()

Response.ok () объект ( "") построить ()..;

0 голосов
/ 25 сентября 2018

Это сработало для меня -

Для 200 -

return Response.status(Response.Status.OK).entity("").build();

Для 400 -

return Response.status(Response.Status.BAD_REQUEST).entity("").build(); 
0 голосов
/ 05 сентября 2018
  1. Вам необходимо удалить

    @ Производит (MediaType.APPLICATION_JSON)

RestController возвращает JSON по умолчанию.

  1. Ваш контроллер должен выглядеть как

    @RestController
    public class RegistrationController {
    
    @GetMapping("api/path")
    public ResponseEntity register() {
        return ResponseEntity.badRequest().build();
    }
    
    }
    
  2. Вы можете проверить пример кода здесь. https://github.com/alex-petrov81/stackoverflow-answers/tree/master/bad-request-show-200

...