亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

簡(jiǎn)化API提升開(kāi)發(fā)效率RestTemplate與HttpClient?OkHttp關(guān)系詳解

 更新時(shí)間:2023年10月11日 09:04:05   作者:wei4118268  
這篇文章主要為大家介紹了簡(jiǎn)化API,提升開(kāi)發(fā)效率,RestTemplate與HttpClient?OkHttp關(guān)系介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1. 什么是RestTemplate

RestTemplate是Spring提供的用于訪問(wèn)Rest服務(wù)的客戶端。

2. RestTemplate與HttpClient、OkHttp等的關(guān)系

RestTemplate是在其他HTTP客戶端庫(kù)基礎(chǔ)上的再次封裝。相對(duì)于其他庫(kù),RestTemplate提供了更加簡(jiǎn)單易用的API,降低了上手和使用成本,提升開(kāi)發(fā)效率。

3. 配置RestTemplate

3.1. 引入依賴

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
</dependency>

RestTemplate默認(rèn)使用JDK的HttpURLConnection作為底層HTTP客戶端的實(shí)現(xiàn)。

如果要使用其他HTTP客戶端庫(kù),請(qǐng)自行引入依賴。

3.2. 初始化為Bean

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }
    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setReadTimeout(5000);
        factory.setConnectTimeout(10000);
        return factory;
    }
}

4. 常用API

4.1 Get請(qǐng)求

//該方法僅返回HTTP協(xié)議的響應(yīng)體,如果你只關(guān)注返回的內(nèi)容,用這個(gè)方法即可
public <T> T getForObject(String url, Class<T> responseType, Object... uriVariables );
//該方法返回ResponseEntity,包含了整個(gè)HTTP響應(yīng)
public <T> org.springframework.http.ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... uriVariables );
public <T> org.springframework.http.ResponseEntity<T> getForEntity(String url, Class<T> responseType, java.util.Map<String, ?> uriVariables );

4.2 Post請(qǐng)求

Post請(qǐng)求的API與Get請(qǐng)求的API相對(duì)應(yīng),功能上相類似。

//該方法僅返回HTTP協(xié)議的響應(yīng)體,如果你只關(guān)注返回的內(nèi)容,用這個(gè)方法即可
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables );
//該方法返回ResponseEntity,包含了整個(gè)HTTP響應(yīng)
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, Object... uriVariables );
public <T> T postForObject(String url, @Nullable Object request, Class<T> responseType, java.util.Map<String, ?> uriVariables );

4.3 exchange方法

//通用API
public <T> org.springframework.http.ResponseEntity<T> exchange(String url, org.springframework.http.HttpMethod method, @Nullable org.springframework.http.HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables );
public <T> org.springframework.http.ResponseEntity<T> exchange(String url, org.springframework.http.HttpMethod method, @Nullable org.springframework.http.HttpEntity<?> requestEntity, Class<T> responseType, java.util.Map<String, ?> uriVariables );

4.4 一些示例

String res = restTemplate.getForObject(sb.toString(), String.class);
Map result = JSON.parseObject(res, Map.class);
String res = restTemplate.postForObject(url, requestBody, String.class);
Map result = JSON.parseObject(res, Map.class);
//可以用來(lái)下載圖片
HttpEntity httpEntity = new HttpEntity<>(requestBody);
ResponseEntity<byte[]> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, byte[].class);
byte[] buffer = responseEntity.getBody();

以上就是RestTemplate與HttpClient OkHttp關(guān)系簡(jiǎn)化API提升開(kāi)發(fā)效率的詳細(xì)內(nèi)容,更多關(guān)于RestTemplate HttpClient OkHttp的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 親手教你IDEA2020.3創(chuàng)建Javaweb項(xiàng)目的步驟詳解

    親手教你IDEA2020.3創(chuàng)建Javaweb項(xiàng)目的步驟詳解

    這篇文章主要介紹了IDEA2020.3創(chuàng)建Javaweb項(xiàng)目的步驟詳解,本文是小編手把手教你,通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-03-03
  • SpringBoot整合logback日志的詳細(xì)步驟

    SpringBoot整合logback日志的詳細(xì)步驟

    這篇文章主要介紹了SpringBoot整合logback日志的詳細(xì)步驟,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • window系統(tǒng)安裝jdk jre的教程圖解

    window系統(tǒng)安裝jdk jre的教程圖解

    java開(kāi)發(fā)少不了安裝jdk,jdk可以同時(shí)安裝多個(gè)版本,只要在項(xiàng)目部署時(shí)注意切換版本選擇,下面小編給大家?guī)?lái)了window系統(tǒng)安裝jdk jre的教程圖解,感興趣的朋友一起看看吧
    2018-08-08
  • Spring?JDBC使用步驟和事務(wù)管理

    Spring?JDBC使用步驟和事務(wù)管理

    Spring?JDBC是Spring框架用來(lái)處理關(guān)系型數(shù)據(jù)庫(kù)的模塊,對(duì)JDBC的API進(jìn)行了封裝,這篇文章主要介紹了Spring?JDBC使用步驟和事務(wù)管理,需要的朋友可以參考下
    2023-12-12
  • 一文帶你了解Java中的Object類及類中方法

    一文帶你了解Java中的Object類及類中方法

    Object是Java默認(rèn)提供的一個(gè)類。Java里面除了Object類,所有的類都是存在繼承關(guān)系的。默認(rèn)會(huì)繼承Object父?類。即所有類的對(duì)象都可以使用Object的引用進(jìn)行接收。本文就來(lái)為大家詳細(xì)講講Object類及類中方法,感興趣的可以了解一下
    2022-08-08
  • SpringCloud中的分布式鎖用法示例詳解(Java+Redis SETNX命令)

    SpringCloud中的分布式鎖用法示例詳解(Java+Redis SETNX命令)

    在Spring Cloud項(xiàng)目中,使用Java和Redis結(jié)合實(shí)現(xiàn)的分布式鎖可以確保訂單的一致性和并發(fā)控制,分布式鎖的使用能夠在多個(gè)實(shí)例同時(shí)提交訂單時(shí),僅有一個(gè)實(shí)例可以成功進(jìn)行操作,本文給大家介紹Spring,Cloud中的分布式鎖用法詳解(Java+Redis SETNX命令),感興趣的朋友一起看看吧
    2023-10-10
  • Caffeine本地緩存示例詳解

    Caffeine本地緩存示例詳解

    Caffeine是一種高性能的緩存庫(kù),是基于Java 8的最佳(最優(yōu))緩存框架,這篇文章主要介紹了Caffeine本地緩存相關(guān)知識(shí),需要的朋友可以參考下
    2023-07-07
  • Java中的按值傳遞和按引用傳遞的代碼詳解

    Java中的按值傳遞和按引用傳遞的代碼詳解

    本文通過(guò)實(shí)例代碼給大家介紹了Java中的按值傳遞和按引用傳遞的相關(guān)知識(shí),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-06-06
  • Spring Cloud Gateway網(wǎng)關(guān)XSS過(guò)濾方式

    Spring Cloud Gateway網(wǎng)關(guān)XSS過(guò)濾方式

    這篇文章主要介紹了Spring Cloud Gateway網(wǎng)關(guān)XSS過(guò)濾方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 使用springboot在工具類中讀取配置文件(ClassPathResource)

    使用springboot在工具類中讀取配置文件(ClassPathResource)

    這篇文章主要介紹了使用springboot在工具類中讀取配置文件(ClassPathResource),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論