मैं स्प्रिंग फ्रेमवर्क का उपयोग कर रहा हूं जिसमें नीचे हेडर है:
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
जिसके पास बहुत सारे कॉन्फिग हैं, जैसे कनेक्शन पूलिंग आदि, टाइमआउट, कनेक्शन टाइमआउट आदि।