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

java調(diào)第三方接口

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

目錄

背景

Spring的RestTemplate

1.引入依賴

2.RestTemplate配置類

3.RestTemplate實現(xiàn)類


背景

java調(diào)第三方接口我百度的有三種方法.

第一種:通過JDK網(wǎng)絡(luò)類Java.net.HttpURLConnection

第二種:通過Apache common封裝好的HttpClient

第三種:通過Spring的RestTemplate

這個三種方法在我的scdn收藏里有,都是可以直接用的.

我今天對第三種方式通過Spring的RestTemplate 這個方法再進行詳細(xì)的說明下,補充一些細(xì)節(jié)?

下面代碼用到的LinkedMultiValueMap是用來傳form表單格式的參數(shù)的,例如:user=你&age=11

下面代碼用到的FileSystemResource是用來傳form表單格式中含file文件參數(shù)的.

LinkedMultiValueMap和FileSystemResource在我的收藏里都有詳細(xì)介紹,這里我就不多說了.

Spring的RestTemplate

1.引入依賴

導(dǎo)入springboot的web包

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
    </parent>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2.RestTemplate配置類

/**
 * @author hsq
 */
@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory){
        return new RestTemplate(factory);
    }

    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(15000);
        factory.setReadTimeout(15000);
        return factory;
    }
}

3.RestTemplate實現(xiàn)類

這個是公用的調(diào)接口類.僅適用于form-data表單形式.

/**
 * 調(diào)用OCR接口,返回識別結(jié)果
 */
@Slf4j
@Component
public class ReadByOCRUtil {
    @Autowired
    private RestTemplate restTemplate;

    /**
     * 通用調(diào)接口方法
     *
     * @param url       接口url
     * @param paramMap  參數(shù)
     * @param mediaType 接口規(guī)定傳參格式
     * @return 返回的結(jié)果
     */
    public String doExchange(String url, HashMap<String, Object> paramMap, String mediaType) {
        //header參數(shù)
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType(mediaType));
        //放入body中的表單參數(shù)
        LinkedMultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
        for (String key : paramMap.keySet()) {
            Object v = paramMap.get(key);
            param.add(key, v);
        }
        //組裝
        HttpEntity<LinkedMultiValueMap<String, Object>> request = new HttpEntity<>(param, headers);
        //ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
        //上面注釋的一行是我一開始用的,但是自從項目更新用了nacos后,就會報service注入服務(wù)錯誤,于是我就改成了下面兩行代碼就不報錯了,
        //至于什么原因后面再去研究補充
        RestTemplate rt = new RestTemplate();
        //ResponseEntity<String> responseEntity = rt.postForObject(url, request, ResponseEntity.class);
上面的代碼用ResponseEntity類接收老是報錯,就改為用object接收了.
Object o = rt.postForObject(url, request, Object.class);
        String s = JSONObject.toJSONString(o);
        return s;
    }

}

如果是POST請求方式,參數(shù)是用form-data格式,不含file文件那么用下面的代碼

    /**
     * 印章圖片識別
     *
     * @param base64 圖片絕對路徑的base64值
     * @return 調(diào)接口返回的結(jié)果
     */
    public String doStamp(String base64) {
        String url = "第三方接口的url";
        String mediaType = "第三方接口要求的Content-Type形式";
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("img", base64);
        String s = doExchange(url, paramMap, mediaType);
        return s;
    }

如果是POST請求方式,參數(shù)是用form-data格式,但是參數(shù)含file文件,那么用下面的代碼

    /**
     * 表格PDF識別
     *
     * @param absolutePath PDF文件絕對路徑
     * @return OCR識別結(jié)果
     */
    public String doFormPDF(String absolutePath) {
        String url = "第三方接口的url";
        String mediaType = "第三方接口要求的Content-Type形式";
        //把臨時文件轉(zhuǎn)換成FileSystemResource
        FileSystemResource resource = new FileSystemResource(absolutePath);
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("file", resource);//	對應(yīng)客戶端的接收參數(shù)名稱
        String result = doExchange(url, paramMap, mediaType);
        return result;
    }

參數(shù)是是其他格式的我還沒有研究過.遇到了再百度補充!文章來源地址http://www.zghlxwxcb.cn/news/detail-448573.html

到了這里,關(guān)于java調(diào)第三方接口的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java對接第三方接口的三種方式

    在日常工作中,經(jīng)常需要跟第三方系統(tǒng)對接,我們做為客戶端,調(diào)用他們的接口進行業(yè)務(wù)處理,常用的幾種調(diào)用方式有: 1.原生的Java.net.HttpURLConnection(jdk); 2.再次封裝的HttpClient、CloseableHttpClient(Apache); 3.Spring提供的RestTemplate; 當(dāng)然還有其他工具類進行封裝的接口,比

    2024年04月28日
    瀏覽(26)
  • Java調(diào)用第三方http接口的常用方式

    前言 一、通過JDK網(wǎng)絡(luò)類Java.net.HttpURLConnection 二、通過apache common封裝好的HttpClient 三、通過Spring的RestTemplate 總結(jié) 今天項目需要接口互相調(diào)用,就看了一下這幾個調(diào)用的方式 通過java.net包下的原生java.api提供的http請求 使用步驟: 通過統(tǒng)一的資源定位器(java.net.URL)獲取連接器(java.

    2024年02月08日
    瀏覽(21)
  • JAVA開發(fā)(基于Restful的微服務(wù)第三方簡易接口設(shè)計)

    JAVA開發(fā)(基于Restful的微服務(wù)第三方簡易接口設(shè)計)

    ? ?一、需求背景 java后端需要提供接口服務(wù),其中接口服務(wù)分為對內(nèi)網(wǎng)的后臺管理系統(tǒng)的接口,對外網(wǎng)的用戶接口和對第三方系統(tǒng)的接口。這里主要講對第三方的接口。 二、接口設(shè)計 我們可以參考微信小程序的接口,一般一個系統(tǒng)提供給第三方系統(tǒng)的接口都需要接口權(quán)限認(rèn)

    2024年02月09日
    瀏覽(25)
  • JAVA調(diào)用第三方接口的GET/POST/PUT請求方式

    GET請求 POST請求 POST請求(JSON傳參) PUT請求(傳TOKEN)

    2024年02月03日
    瀏覽(26)
  • Java以form-data(表單)的形式調(diào)用第三方接口

    Java以form-data(表單)的形式調(diào)用第三方接口

    之前寫的調(diào)用第三方接口: Java使用原生API調(diào)用第三方接口 但是其中只包含了簡單的接口(傳遞數(shù)據(jù)為JSON)調(diào)用。也就是 Content-Type 的值是設(shè)置成: 當(dāng)?shù)谌浇涌谛枰?文件 類型的參數(shù),我們要設(shè)置成以 表單形式 提交,就要那么該屬性就應(yīng)該設(shè)置成 表示是以 表單形式

    2024年02月02日
    瀏覽(19)
  • java通過httpclient攜帶請求頭參數(shù)獲取第三方文件流接口并實現(xiàn)實現(xiàn)文件下載

    創(chuàng)建httpclient 請求,并在header攜帶指定key,也可根據(jù)實際需要攜帶token等信息。獲取第三方接口返回的文件輸入流并寫到本地response中,實現(xiàn)返回文件流,前端通過js的a標(biāo)簽進行下載。 代碼如下: 前端js代碼

    2024年02月16日
    瀏覽(29)
  • java發(fā)送http請求的幾種方式,調(diào)用第三方接口的方法:HttpUtil、HttpURLConnection等

    參考:https://blog.csdn.net/yubin1285570923/article/details/126225347 put請求 post帶請求頭 get、delete類似… 使用JDK原生提供的net,無需其他jar包,代碼如下: 需要用到commons-httpclient-3.1.jar,maven依賴如下: 看一下我實際應(yīng)用的例子 需要用到httpclient-4.5.6.jar,maven依賴如下: RestTemplate 是由

    2024年01月18日
    瀏覽(34)
  • 【cmake學(xué)習(xí)】cmake 引入第三方庫(頭文件目錄、庫目錄、庫文件)

    【cmake學(xué)習(xí)】cmake 引入第三方庫(頭文件目錄、庫目錄、庫文件)

    程序的編寫需要用到頭文件,程序的編譯需要lib文件,程序的運行需要dll文件,因此cmake引入第三方庫其實就是將include目錄、lib目錄、bin目錄引入工程。 ????????目錄 1、find_package(批量引入庫文件和頭文件) 2、include_directories(引入頭文件目錄) 3、link_directories(引入庫

    2024年02月09日
    瀏覽(89)
  • php第三方阿里云接口

    阿里云 OpenAPI 開發(fā)者門戶

    2024年02月15日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包