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

RestTemplate如何添加請求頭headers和請求體body

 更新時間:2023年07月07日 09:16:57   作者:pNull  
這篇文章主要介紹了RestTemplate如何添加請求頭headers和請求體body問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

RestTemplate添加請求頭headers和請求體body

//headers & cookie
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("basecret", config.getBasecret());
headers.add("baid", config.getBaid());
List<String> cookies = new ArrayList<>();
cookies.add("COOKIE_USER" + Strings.nullToEmpty(config.getCookie()));
headers.put(HttpHeaders.COOKIE, cookies);

1、調(diào)用postForObject方法  

2、使用postForEntity方法  

3、調(diào)用exchange方法

postForObject和postForEntity方法的區(qū)別主要在于可以在postForEntity方法中設(shè)置header的屬性,當需要指定header的屬性值的時候,使用postForEntity方法。

exchange方法和postForEntity類似,但是更靈活,exchange還可以調(diào)用get請求。

使用這三種方法傳遞參數(shù),Map不能定義為以下兩種類型

Map<String, Object> paramMap = new HashMap<String, Object>();
Map<String, Object> paramMap = new LinkedHashMap<String, Object>();

把Map類型換成LinkedMultiValueMap后,參數(shù)成功傳遞到后臺

MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
paramMap.add("dt", "20190225");
// 1、使用postForObject請求接口
String result = template.postForObject(url, paramMap, String.class);
// 2、使用postForEntity請求接口
HttpHeaders headers = new HttpHeaders();
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(paramMap,headers);
ResponseEntity<String> response2 = template.postForEntity(url, httpEntity, String.class);
// 3、使用exchange請求接口
ResponseEntity<String> response3 = template.exchange(url, HttpMethod.POST, httpEntity, String.class);
 

4、get方法

如果是get請求,又想要把參數(shù)封裝到map里面進行傳遞的話,Map需要使用HashMap,且url需要使用占位符,如下:

RestTemplate restTemplate2 = new RestTemplate();
String url = "http://127.0.0.1:8081/interact/getData?dt={dt}&ht={ht}";
// 封裝參數(shù),這里是HashMap
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("dt", "20190225");
paramMap.put("ht", "10");
//1、使用getForObject請求接口
String result1 = template.getForObject(url, String.class, paramMap);
System.out.println("result1====================" + result1);
//2、使用exchange請求接口
HttpHeaders headers = new HttpHeaders();
headers.set("id", "lidy");
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(null,headers);
ResponseEntity<String> response2 = template.exchange(url, HttpMethod.GET, httpEntity, String.class,paramMap);

5、如果post請求體是個Json的表單

? ? ? ? //JSONObject userInfo = new JSONObject();
? ? ? ? Map<String, Object> userInfo = Maps.newHashMap();
? ? ? ? userInfo.put("phone", accountForm.getPhone());
? ? ? ? userInfo.put("job", accountForm.getJob());
? ? ? ? userInfo.put("email", accountForm.getEmail());
? ? ? ? Map<String, Object> postBody = Maps.newHashMap();
? ? ? ? postBody.put("userInfo", userInfo);
? ? ? ? HttpEntity<Map> requestEntity = new HttpEntity<>(postBody, headers);
? ? ? ? ?try {
? ? ? ? ? ? ?ResponseEntity<String> result = restTemplate.postForEntity(config.getCreateWithAuthUrl(), requestEntity, String.class);
? ? ? ? ? ? ?JsonNode jsonNode = JsonUtils.toJsonNode(result.getBody());
? ? ? ? ? ? ?if (jsonNode.get("errno").asInt() == 200 || jsonNode.get("errno").asInt() == 505) {
? ? ? ? ? ? ? ? ?return true;
? ? ? ? ? ? ?}
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? logger.error(e.getMessage(), e);
? ? ? ? }

請求異常RestTemplate 獲取response的headers和body

        ResponseEntity<String> responseEntity = null;
        try {
            restTemplate.postForEntity("http://localhost:1111/test", null, String.class);
        } catch (HttpStatusCodeException e) {
            e.getStatusCode();
            e.getResponseBodyAsString();
            e.getResponseHeaders();
        }

捕捉HttpStatusCodeException替代RestClientException

總結(jié)

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

相關(guān)文章

  • 解決springmvc整合Mybatis的Log4j日志輸出問題

    解決springmvc整合Mybatis的Log4j日志輸出問題

    這篇文章主要介紹了解決springmvc整合Mybatis的Log4j日志輸出問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • IDEA2022創(chuàng)建Maven Web項目教程(圖文)

    IDEA2022創(chuàng)建Maven Web項目教程(圖文)

    本文主要介紹了IDEA2022創(chuàng)建Maven Web項目教程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • maven查看依賴樹的方法實現(xiàn)

    maven查看依賴樹的方法實現(xiàn)

    Maven依賴樹是以當前項目的POM文件為根節(jié)點,列出了所有直接或間接依賴的依賴樹結(jié)構(gòu),本文就詳細的來介紹一下如何查看,感興趣的可以了解一下
    2023-08-08
  • Java 中ConcurrentHashMap的實現(xiàn)

    Java 中ConcurrentHashMap的實現(xiàn)

    本文主要介紹Java 中ConcurrentHashMap的實現(xiàn),這里整理了詳細的資料,及簡單實例代碼,有興趣的小伙伴可以參考下
    2016-09-09
  • HashMap紅黑樹入門(實現(xiàn)一個簡單的紅黑樹)

    HashMap紅黑樹入門(實現(xiàn)一個簡單的紅黑樹)

    紅黑樹(Red Black Tree) 是一種自平衡二叉查找樹,是在計算機科學中用到的一種數(shù)據(jù)結(jié)構(gòu),典型的用途是實現(xiàn)關(guān)聯(lián)數(shù)組。 紅黑樹發(fā)明時被稱為平衡二叉B樹,后來修改為如今的“紅黑樹”
    2021-06-06
  • 使用jackson實現(xiàn)對象json之間的相互轉(zhuǎn)換(spring boot)

    使用jackson實現(xiàn)對象json之間的相互轉(zhuǎn)換(spring boot)

    這篇文章主要介紹了使用jackson實現(xiàn)對象json之間的相互轉(zhuǎn)換(spring boot),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java如何實現(xiàn)抽取json文件指定字段值

    java如何實現(xiàn)抽取json文件指定字段值

    這篇文章主要介紹了java如何實現(xiàn)抽取json文件指定字段值,具有很好的參考價值,希望對大家有所幫助。
    2022-06-06
  • Java簡易學生成績系統(tǒng)寫法實例

    Java簡易學生成績系統(tǒng)寫法實例

    在本篇文章里小編給大家分享的是關(guān)于Java簡易學生成績系統(tǒng)寫法實例以及相關(guān)知識點,有需要的朋友們可以學習下。
    2019-09-09
  • java面試題解LeetCode27二叉樹的鏡像實例

    java面試題解LeetCode27二叉樹的鏡像實例

    這篇文章主要為大家介紹了java面試題解LeetCode27二叉樹的鏡像實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • java中的switch case語句使用詳解

    java中的switch case語句使用詳解

    這篇文章主要介紹了java中的switch case語句使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

正蓝旗| 岳阳市| 洱源县| 高碑店市| 汕尾市| 钟祥市| 定边县| 峨山| 肇庆市| 库尔勒市| 襄樊市| 观塘区| 玉溪市| 建始县| 云浮市| 两当县| 卓资县| 黄浦区| 永靖县| 江北区| 罗江县| 农安县| 红桥区| 江津市| 辉县市| 繁昌县| 邓州市| 民和| 安阳县| 托里县| 嘉黎县| 临海市| 嘉定区| 南岸区| 北川| 马龙县| 女性| 吉隆县| 和田县| 凤城市| 滨州市|