0

当我们向第三方服务发起 api 调用时,我们可以获得不同的 HTTP 响应(200、404 等)。我们如何以标准方式处理它们?

private ResponseEntity<ResultHolder> responseEntity;
public ResponseEntity<ResultHolder> serviceTest(String searchText, String countryCode) {
        
        logger.info("Service started");
        String url = prepareUrl(searchText,countryCode); //custom method
        HttpHeaders header = new HttpHeaders();
        prepareHeader(header); //custom method
        HttpEntity<String> requestEntity = new HttpEntity<String>(header);
        try {
            logger.info("Calling the API");
            responseEntity = restClient.exchange(url,
                    HttpMethod.GET,
                    requestEntity,
                    ResultHolder.class);
        }catch (Exception e) {
            logger.error("Exception while calling the API "+ e);

            //Here I am trying to get the value of response code and handle based on that
            //Is this the right way to solve the problem?
            if(responseEntity.getStatusCodeValue() != 200) {
                responseEntity = new ResponseEntity<ResultHolder>( 
                      HttpStatus.BAD_REQUEST);
            }
        }
        logger.info("Service Ended");
        return responseEntity;
        
    }

如果我想针对服务器端错误和“无 Internet 连接”等用户错误显示不同的自定义消息,该怎么办。

请帮助我了解该领域的良好做法。谢谢

4

0 回答 0