2017-05-22 1 views
0

J'utilise le cadre de ressort qui a l'en-tête ci-dessous:obtenir une réponse d'état (comme 400500)

import org.springframework.web.client.RestTemplate; 

Je veux aller chercher le code d'état pour écrire mon enregistreur. Comment obtenir la réponse de restTemplate?

public boolean performTransition(String transitionId,String jiraId){ 

    JiraID id = new JiraID(transitionId); 
    JiraTransition transition = new JiraTransition(); 
    transition.setTransition(id); 

    String transitionUrlFormat = String.format(transitionUrl,jiraId); 

    RestTemplate template = new RestTemplate(); 

    HttpEntity epicEntityRequest = new HttpEntity(transition,createHttpHeaders()); 

    HttpEntity<String> epicEntityResponse= template.exchange(transitionUrlFormat , HttpMethod.POST, epicEntityRequest, String.class); 
    //TODO: verify code 204 
    ResponseEntity<String> responseEntity= (ResponseEntity<String>) epicEntityResponse; 
    epicEntityResponse.getBody(); 
    //System.out.println("LOG" +responseEntity); 
    //responseEntity.getStatusCode(); 
    HttpStatus statusCode = responseEntity.getStatusCode(); 


    return true; 
} 

En outre, je veux vérifier le code de réponse ci-dessus 400 Je veux écrire log.warning().

+1

montrez votre extrait de code – pvpkiran

+0

Édité la réponse. –

Répondre

0

La question nécessite plus d'explications. Est-ce que vous qui signifie quelque chose comme ceci:

ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class); 
int statusCode = response.getStatusCode().value(); 

Cela donne le code de statut d'int, vous pouvez faire quelque chose comme:

if(statusCode > 400){ 
//Log here 
} 

La classe ResponseEntity peut vous donner l'intégralité du code d'état de réponse HTTP, le corps et en-têtes.

Ofcourse, vous devez initialiser restTemplate, soit en utilisant par défaut:

RestTemplate restTemplate = new RestTemplate(); 

Il utilise, par défaut: SimpleClientHttpRequestFactory, ou si vous voulez quelque chose que vous pouvez utiliser plus configurable: HttpComponentsClientHttpRequestFactory qui a beaucoup de configs, comme la mise en commun de connexion etc, lire timeout, connexion timeout, etc.

+0

sur si son lancement de cette erreurERR: Opérateur '>' ne peut pas être appliqué à 'org.springframework.http.HttpStatus', 'int' je reçois cette erreur et je ne peux pas le déclarer comme int donc j'ai changé la variable type to HttpStatus – DeathPulse

+0

Vous pouvez obtenir une valeur int à partir de statusCode.value(); –

+0

@DeathPulse - Cela a-t-il fonctionné? –