国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot 調用外部接口

這篇具有很好參考價值的文章主要介紹了SpringBoot 調用外部接口。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

SpringBoot 調用外部接口



前言

一個系統(tǒng)肯定少不了要和外部系統(tǒng)進行通信,所以就必須得訪問外部接口。
本次演示的是使用的是高德天氣api接口

一、第一種方式(HttpClient等)

使用插件方式,比如自帶的HttpClient,或者OkHttp,甚至是原生的HttpURLConnection 等等,這里以HttpClient為例。

1、封裝工具類

簡單封裝的get請求

    /**
     * 發(fā)送get請求:帶請求頭和請求參數(shù)
     *
     * @param url     請求地址
     * @param headers 請求頭
     * @param params  請求參數(shù)集合
     * @return JSONObject
     * @throws Exception
     */
    public static JSONObject doGet(String url, Map<String, Object> headers, Map<String, Object> params) throws Exception {
        //創(chuàng)建httpClient對象
        CloseableHttpClient httpClient = HttpClients.createDefault();
        URIBuilder uriBuilder = new URIBuilder(url);
        if (params != null) {
            Set<Map.Entry<String, Object>> entrySet = params.entrySet();
            for (Map.Entry<String, Object> entry : entrySet) {
                uriBuilder.setParameter(entry.getKey(), String.valueOf(entry.getValue()));
            }
        }
        URI uri = uriBuilder.build();
        HttpGet httpGet = new HttpGet(uri);
        //設置參數(shù)
        httpGet.setConfig(RequestConfig.custom().setConnectTimeout(CONNECT_TIMEOUT).setSocketTimeout(SOCKET_TIMEOUT).build());
        //設置請求頭
        packageHeader(headers, httpGet);
        CloseableHttpResponse httpResponse = null;
        try {
            return getResponse(httpResponse, httpClient, httpGet);
        } finally {
            release(httpResponse, httpClient);
        }
    }

2、測試方法

        Map<String,Object> headers=new HashMap<>();
        headers.put("Key","換成你自己的key");
        Map<String,Object> query=new HashMap<>();
        query.put("city","350200");
        JSONObject jsonObject = HttpUtil.doGet("https://restapi.amap.com/v3/weather/weatherInfo", headers, query);
        log.info(JSONUtil.toJsonStr(jsonObject));

3、結果驗證

SpringBoot 調用外部接口

二、第二種方式(RestTemplate)

RestTemplate可用于微服務間的通信,也可以用于網絡請求。
其有多種提交方式,postForEntity、postForObject、postForLocation等等。
這是使用getForEntity進行演示。
RestTemplate 的使用很靈活需要自己根據(jù)實際使用

1、調用方法

RestTemplate restTemplate = new RestTemplate();
        //創(chuàng)建請求頭
        HttpHeaders httpHeaders = new HttpHeaders();
        //參數(shù)
        Map<String, Object> query = new HashMap<>();
        query.put("city", "350200");
        query.put("Key", "換成你自己的key");
        HttpEntity<Map<String, Object>> httpEntity = new HttpEntity<>(httpHeaders);
        String url = "https://restapi.amap.com/v3/weather/weatherInfo?city={city}&Key={Key}";
        //請求地址、請求體以及返回參數(shù)類型
        ResponseEntity<JSONObject> responseEntity = restTemplate.getForEntity(url, JSONObject.class, query);
        log.info(JSONUtil.toJsonStr(responseEntity));

2、結果驗證

SpringBoot 調用外部接口

三、第三種方式(Feign)

引入依賴

<!-- spring-cloud-starter-openfeign -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    <version>4.0.0</version>
</dependency>

feign是用于微服務間消費使用的,也可以用于網絡請求。

這里的url應該是要放在配置文件中的,為了方便這邊就直接寫死。
注意FeignClient中的name要配置 不然在測試類中會報錯

1、調用接口

/**
 * @author xysusj
 */
@FeignClient(url = "https://restapi.amap.com/v3/weather/weatherInfo",name = "weatherApi")
public interface WeatherApi {

    /**
     * 獲取天氣詳情
     *
     * @param key
     * @param city
     * @return
     */
    @GetMapping(value = "")
    JSONObject getWeather(@RequestParam("Key") String key, @RequestParam("city") String city);
}

2、結果驗證

SpringBoot 調用外部接口文章來源地址http://www.zghlxwxcb.cn/news/detail-491519.html

總結

這里只是簡單介紹三種比較常用的對外請求接口的方式,這里都是簡單的get請求,還有很多比較復雜的請求,post的json格式
或者表單格式,以及文件流等等,在實際的業(yè)務場景中需要自己去完善。

到了這里,關于SpringBoot 調用外部接口的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 隱藏 IP 地址調用外部接口:探索與實踐

    引言: 在網絡開發(fā)中,有時我們需要調用外部接口來獲取數(shù)據(jù)或執(zhí)行某些操作。然而,有些情況下,我們希望隱藏自己的 IP 地址,以保護隱私或規(guī)避某些限制。本文將探討隱藏 IP 地址調用外部接口的方法和解決方案,以及在 Java 中實現(xiàn)的具體示例。 隱藏 IP 地址的方法: 使

    2024年03月16日
    瀏覽(17)
  • Spring Boot 調用外部接口的 3 種方式

    SpringBoot不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發(fā)過程。在Spring-Boot項目開發(fā)中,存在著本模塊的代碼需要訪問外面模塊接口,或外部url鏈接的需求, 比如在apaas開發(fā)過程中需要封裝接口在接口中調用apaas提供的接口(

    2024年02月12日
    瀏覽(42)
  • Spring Boot 中調用外部接口的 3 種方式

    ??SpringBoot不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發(fā)過程。在Spring-Boot項目開發(fā)中,存在著本模塊的代碼需要訪問外面模塊接口,或外部url鏈接的需求。 ??調用外部接口是指在應用程序中與其他系統(tǒng)、服務或服務

    2024年02月14日
    瀏覽(16)
  • SpringBoot——SpringBoot訪問外部接口

    在SpringBoot接口開發(fā)中,存在著本模塊的代碼需要訪問外面模塊接口或外部url鏈接的需求, 比如調用外部的地圖API或者天氣API。那么有哪些方式可以調用外部接口呢?本博文將介紹SpringBoot常見的訪問外部接口方式。幫助大家更好的使用SpringBoot訪問外部接口。 調用其它模塊的

    2024年02月07日
    瀏覽(20)
  • Spring Boot 調用外部接口的 3 種方式,還有誰不會?!

    Spring Boot 調用外部接口的 3 種方式,還有誰不會?!

    SpringBoot不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發(fā)過程。 在Spring-Boot項目開發(fā)中,存在著本模塊的代碼需要訪問外面模塊接口,或外部url鏈接的需求, 比如在apaas開發(fā)過程中需要封裝接口在接口中調用apaas提供的接口(

    2024年02月09日
    瀏覽(20)
  • 記一次使用hutool的http工具調用外部接口同步人員信息

    首先是TreeNodeVo實體 構建目錄樹的工具類 最后根據(jù)返回的集合生成目錄結構,主要設置treenodevo對象的id,pid,value,lable參數(shù) controller類 前端vue+elementui,用級聯(lián)選擇器顯示目錄樹 data中添加treeNodeVos對象 methods中添加后臺調用方法,此方法可以在點擊頁面加載時調用,看自己,還有

    2024年02月05日
    瀏覽(23)
  • springboot使用restTemplate調用webservice接口

    springboot使用restTemplate調用webservice接口

    1.首先確定wsdl的http地址,使用postman測試接口是否成功 ?在瀏覽器輸入webservice地址可以找到相應的請求和響應示例。 ? ?如果postman返回了正確的數(shù)據(jù),就說明測試成功! 2.接下來代碼:

    2024年01月16日
    瀏覽(25)
  • springboot @Async 異步調用接口處理數(shù)據(jù)

    springboot @Async 異步調用接口處理數(shù)據(jù)

    @Async 異步背景 新增的數(shù)據(jù)需要分發(fā)給下游業(yè)務系統(tǒng),由于下游業(yè)務系統(tǒng)狀態(tài)未知,所以需要異步發(fā)送數(shù)據(jù)給下游業(yè)務系統(tǒng)。 系統(tǒng)生效按鈕---controller新增--異步調用servcie---數(shù)據(jù)集成 在springboot框架中實現(xiàn)步驟 首先在啟動類上加上 @EnableAsync 注解開啟項目的異步調用功能,其次

    2024年02月16日
    瀏覽(24)
  • SpringBoot案例 調用第三方接口傳輸數(shù)據(jù)

    SpringBoot案例 調用第三方接口傳輸數(shù)據(jù)

    最近再寫調用三方接口傳輸數(shù)據(jù)的項目,這篇博客記錄項目完成的過程,方便后續(xù)再碰到類似的項目可以快速上手 項目結構: 這里主要介紹HttpClient發(fā)送POST請求工具類和定時器的使用,mvc三層架構編碼不做探究 pom.xml application-dev.yml Constast utils scheduled 該定時任務每10秒執(zhí)行一

    2024年02月12日
    瀏覽(29)
  • 【新手向】如何使用postman調用springboot接口

    【新手向】如何使用postman調用springboot接口

    springboot:2.7.2 mybatis:3.5.11 postgresql:42.3.6 jdk:8 項目啟動之后,無法使用postman調用本地接口。返回no message available: 調用方式為Post。調整postman的header,新增Content-Type為application/json 為方法入參加上@RequestBody注解 Rest接口與啟動類不在同一包下,新增@ComponentScan注解,指定掃描

    2024年01月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包