最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

RestTemplate使用之如何設(shè)置請求頭、請求體

 更新時間:2023年07月06日 10:46:19   作者:Hello_xzy_Word  
這篇文章主要介紹了RestTemplate使用之如何設(shè)置請求頭、請求體問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

RestTemplate使用:設(shè)置請求頭、請求體

HttpEntity ?

使用 RestTemplate 時可以通過 HttpEntity 設(shè)置請求頭和請求體。HttpEntity 有4個構(gòu)造方法:

  • 既不設(shè)置請求體,也不設(shè)置請求頭
  • 只設(shè)置請求體
  • 只設(shè)置請求頭
  • 同時設(shè)置請求體和請求頭

HttpEntity 源碼:

/**
?* Create a new, empty {@code HttpEntity}.
?*/
protected HttpEntity() {
? this(null, null);
}
/**
?* Create a new {@code HttpEntity} with the given body and no headers.
?* @param body the entity body
?*/
public HttpEntity(T body) { // 只設(shè)置請求體
? this(body, null);
}
/**
?* Create a new {@code HttpEntity} with the given headers and no body.
?* @param headers the entity headers
?*/
public HttpEntity(MultiValueMap<String, String> headers) { // 只設(shè)置請求頭
? this(null, headers);
}
/**
?* Create a new {@code HttpEntity} with the given body and headers.
?* @param body the entity body
?* @param headers the entity headers
?*/
public HttpEntity(T body, MultiValueMap<String, String> headers) { // 同時設(shè)置請求體與請求頭
? this.body = body;
? HttpHeaders tempHeaders = new HttpHeaders();
? if (headers != null) {
? ? ? tempHeaders.putAll(headers);
? }
? this.headers = HttpHeaders.readOnlyHttpHeaders(tempHeaders);
}

1、為 post、put 請求設(shè)置請求頭、請求體

如果是為 post、put 請求設(shè)置請求頭、請求體,可以在調(diào)用方法時,利用第二個參數(shù)傳入 HttpEntity 對象,例如:

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("MyRequestHeader", "MyValue");
HttpEntity requestEntity = new HttpEntity(requestHeaders);
Book book = restTemplate.postForObject("http://127.0.0.1:8080/getbook", requestEntity, Book.class);

PS:public class HttpHeaders implements MultiValueMap<String, String>, Serializable

同時設(shè)置請求頭和請求體:

? ? @PostMapping("post_with_body_and_header")
? ? public void postWithBodyAndHeader(@RequestBody(required = false) UserEntity requestBody) {
? ? ? ? // 1.請求頭
? ? ? ? HttpHeaders httpHeaders = new HttpHeaders();
? ? ? ? httpHeaders.add("headerName1", "headerValue1");
? ? ? ? httpHeaders.add("headerName2", "headerValue2");
? ? ? ? httpHeaders.add("headerName3", "headerValue3");
? ? ? ? httpHeaders.add("Content-Type", "application/json"); // 傳遞請求體時必須設(shè)置
? ? ? ? // 2.請求頭 & 請求體
? ? ? ? HttpEntity<String> fromEntity = new HttpEntity<>(JSONUtil.toJsonStr(requestBody), httpHeaders);
? ? ? ? MessageBox responseBody = restTemplate.postForObject(INVOKE_URL + "/test/receive", fromEntity, MessageBox.class);
? ? ? ? log.info("響應(yīng)體:{}", JSONUtil.toJsonPrettyStr(responseBody));
? ? }

2、為其他請求設(shè)置請求頭、請求體

如果是其它HTTP方法調(diào)用要設(shè)置請求頭,可以使用exchange()方法:

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("MyRequestHeader", "MyValue");
HttpEntity requestEntity = new HttpEntity(requestHeaders);
HttpEntity<String> response = template.exchange(
? ? ? ? "http://example.com/hotels/{hotel}",
? ? ? ? HttpMethod.GET,?
? ? ? ? requestEntity,?
? ? ? ? String.class,?
? ? ? ? "42"
? ? );
String responseHeader = response.getHeaders().getFirst("MyResponseHeader");
String body = response.getBody();

RestTemplate添加請求頭

//請求添加token頭
HttpHeaders headers = new HttpHeaders();
headers.add("token",token);
HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
ResponseEntity<String> resEntity = restTemplate.exchange(url.toString(), HttpMethod.GET, requestEntity, String.class);
//請求結(jié)果
String str = resEntity.getBody();

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java 枚舉類和自定義枚舉類和enum聲明及實現(xiàn)接口的操作

    Java 枚舉類和自定義枚舉類和enum聲明及實現(xiàn)接口的操作

    這篇文章主要介紹了Java 枚舉類和自定義枚舉類和enum聲明及實現(xiàn)接口的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java反射獲取所有Controller和RestController類的方法

    Java反射獲取所有Controller和RestController類的方法

    這篇文章給大家分享了Java反射獲取所有Controller和RestController類的方法,文中有詳細(xì)的代碼示例講解,具有一定的參考價值,需要的朋友可以參考下
    2023-08-08
  • Java+Ajax實現(xiàn)的用戶名重復(fù)檢驗功能實例詳解

    Java+Ajax實現(xiàn)的用戶名重復(fù)檢驗功能實例詳解

    這篇文章主要介紹了Java+Ajax實現(xiàn)的用戶名重復(fù)檢驗功能,結(jié)合實例形式詳細(xì)分析了java針對用戶名提交的ajax數(shù)據(jù)庫查詢與重復(fù)檢查功能相關(guān)實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2018-12-12
  • Java中使用COS實現(xiàn)文件上傳功能

    Java中使用COS實現(xiàn)文件上傳功能

    cos是O'Rrilly公司開發(fā)的一款用于HTTP上傳文件的OpenSource組件。下面通過本文給大家分享使用COS實現(xiàn)文件上傳功能,感興趣的朋友一起看看吧
    2017-08-08
  • Java線程池八股及實現(xiàn)過程

    Java線程池八股及實現(xiàn)過程

    線程池的八股包括線程池的核心參數(shù)、執(zhí)行原理、拒絕策略、阻塞隊列、核心線程數(shù)的確定、線程池種類、不建議使用Executors創(chuàng)建線程池的原因、ThreadLocal的理解及ThreadLocal的內(nèi)存泄露問題,展示了線程池的運(yùn)行機(jī)制,本文介紹Java線程池八股及實現(xiàn),感興趣的朋友一起看看吧
    2026-01-01
  • Java單列集合Collection常用方法示例詳解

    Java單列集合Collection常用方法示例詳解

    這篇文章主要介紹了Java單列集合Collection常用方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說明

    SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說明

    這篇文章主要介紹了SpringMVC中@ModelAttribute與@RequestBody的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Spring Cache手動清理Redis緩存

    Spring Cache手動清理Redis緩存

    這篇文章主要介紹了Spring Cache手動清理Redis緩存,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Spring Boot 中的靜態(tài)資源放置位置

    Spring Boot 中的靜態(tài)資源放置位置

    這篇文章主要介紹了Spring Boot 中的靜態(tài)資源到底要存放哪里,很多童鞋對這個問題很糾結(jié),接下來通過本文給大家介紹下,需要的朋友可以參考下
    2019-04-04
  • RocketMQ?offset確認(rèn)機(jī)制示例詳解

    RocketMQ?offset確認(rèn)機(jī)制示例詳解

    這篇文章主要為大家介紹了RocketMQ?offset確認(rèn)機(jī)制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09

最新評論

孝昌县| 福贡县| 图片| 无锡市| 玉林市| 通州市| 潢川县| 文山县| 万山特区| 青州市| 修武县| 浏阳市| 阜新| 新野县| 太康县| 盘山县| 和田市| 环江| 瑞丽市| 扶绥县| 定南县| 肇庆市| 阿拉善盟| 昌平区| 珠海市| 东山县| 金昌市| 建德市| 伊宁市| 台北市| 高碑店市| 江孜县| 航空| 吉木萨尔县| 夹江县| 东乌珠穆沁旗| 阿克苏市| 宝坻区| 青州市| 华宁县| 循化|