/ / स्थिति प्रतिक्रिया प्राप्त करें (जैसे 400,500) - वसंत, रेस्टेमप्लेट

स्थिति प्रतिक्रिया प्राप्त करें (400,500 की तरह) - वसंत, resttemplate

मैं स्प्रिंग फ्रेमवर्क का उपयोग कर रहा हूं जिसमें नीचे हेडर है:

import org.springframework.web.client.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;
}

इसके अलावा, मैं 400 से ऊपर प्रतिक्रिया कोड के लिए जांच करना चाहता हूं मैं log.warning () लिखना चाहता हूं।

उत्तर:

जवाब के लिए 0 № 1

प्रश्न को और अधिक विस्तार की आवश्यकता है। क्या आप कुछ इस तरह हैं:

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

यह एक इंट के रूप में स्थिति कोड देता है, आप कुछ ऐसा कर सकते हैं

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

कक्षा ResponseEntity आप संपूर्ण HTTP प्रतिक्रिया स्थिति कोड, निकाय और शीर्ष लेख दे सकते हैं।

संभोग, आपको आरंभ करने की आवश्यकता है restTemplate, या तो डिफ़ॉल्ट का उपयोग कर:

RestTemplate restTemplate = new RestTemplate();

यह उपयोग करता है, डिफ़ॉल्ट: SimpleClientHttpRequestFactory, या यदि आप कुछ और अधिक विन्यास चाहते हैं जो आप उपयोग कर सकते हैं: HttpComponentsClientHttpRequestFactory जिसके पास बहुत सारे कॉन्फिग हैं, जैसे कनेक्शन पूलिंग आदि, टाइमआउट, कनेक्शन टाइमआउट आदि।