RestTemplate、HttpHeaders、HttpEntity


 
        
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.RestTemplate;

public static String handelPost(String url, String body){
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
HttpEntity<String> formEntity = new HttpEntity<>(body, headers);
String str= restTemplate.postForEntity(url, formEntity, String.class).getBody();
return str;
}

HttpEntity@RequestBody@ResponseBody很像。除了能夠訪問請求和響應體,HttpEntity(和子類ResponseEntity)也能訪問請求(和響應)頭

@RequestMapping("/something")

public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException
{ String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader"); byte[] requestBody = requestEntity.getBody(); // do something with request header and body HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.set("MyResponseHeader", "MyValue"); return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED); }

  上面的例子獲取MyRequestHeader請求頭的值,讀取請求體為字節數組。還把MyResponseHeader添加到響應中,把Hello World寫到響應流中,並設置響應狀態碼為 201(創建)。

  就像@RequestBody@ResponseBody一樣,Spring 使用HttpMessageConverter在請求和響應流之間進行轉換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM