第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以使用 Spring Boot 使用別人的 API 發(fā)出請求嗎?

我可以使用 Spring Boot 使用別人的 API 發(fā)出請求嗎?

墨色風(fēng)雨 2023-06-28 16:10:06
我對 Spring 很陌生,我正在嘗試?yán)斫馑?。我可以使用Spring boot來調(diào)用別人的api嗎?例如,我使用的 api 需要使用他們給我的憑據(jù)進(jìn)行身份驗證。我想使用他們的 API 來發(fā)出 POST 請求。到目前為止,我已經(jīng)找到了與使用您自己的 API 相關(guān)的文檔。這些請求還需要傳遞標(biāo)頭。我可以使用 Spring 傳遞我的憑據(jù)和所需標(biāo)頭來執(zhí)行 POST 請求的最簡單方法是什么?任何幫助,將不勝感激。
查看完整描述

3 回答

?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗 獲得超10個贊

如果我很了解你,你需要發(fā)布另一個帶有憑據(jù)的網(wǎng)絡(luò)API,你可以使用


RestTemplate 就像下面的例子

 public List<EtisAccount> getAllActiveAccount(){

        logger.debug("Debug: in Class \t"+this.getClass().getName()+" Method Name is: \t"+new Object() {}.getClass().getEnclosingMethod().getName());

        Properties sprinklrProp=sprinklrProperties.getSprinklrKeys();

        SprinklrCredential sprinklrCredential=credentialBuilder.getSprinklrCredential();

        RestTemplate restTemplate= new RestTemplate();

        HttpHeaders header = new HttpHeaders();

        header.setBearerAuth(sprinklrCredential.getAccess_token());

        header.add("key", sprinklrCredential.getApi_key());

        header.set("Accept", MediaType.APPLICATION_JSON_UTF8_VALUE);

        UriComponentsBuilder uriBuilder= UriComponentsBuilder.fromUriString(sprinklrProp.getProperty("sprinlrUri").toString())

                .queryParam("types", sprinklrProp.getProperty("accountTypes").toString());

        HttpEntity<String> entity= new HttpEntity<>(header);

        sslCertificateValidation.disable();

        ResponseEntity<String> sprinklrResponse=restTemplate.exchange(uriBuilder.toUriString(),HttpMethod.GET,entity,  String.class);

        List<EtisAccount> activeAccouts=etisAccountHelper.getAllSocialEtisAccounts(sprinklrResponse.getBody());

        logger.debug(String.valueOf(sprinklrResponse.getStatusCodeValue()));

        logger.debug(activeAccouts.toString());

        return activeAccouts;

    }


這是使用 RestTemplate 調(diào)用在線 API 的示例


在這里我用憑據(jù)構(gòu)建標(biāo)頭(不記名身份驗證)


        HttpHeaders header = new HttpHeaders();

        header.setBearerAuth(sprinklrCredential.getAccess_token());

        header.add("key", sprinklrCredential.getApi_key());

        header.set("Accept", MediaType.APPLICATION_JSON_UTF8_VALUE);


在這里我添加標(biāo)頭 requestEntity 以添加到 Resttemplate 請求


     HttpEntity<String> entity= new HttpEntity<>(header);

在這里我使用交換方法得到響應(yīng)


   ResponseEntity<String> sprinklrResponse=restTemplate.exchange(uriBuilder.toUriString(),HttpMethod.POST,entity,  String.class);



查看完整回答
反對 回復(fù) 2023-06-28
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗 獲得超14個贊

你需要以下東西:

  1. 從https://start.spring.io/創(chuàng)建一個 Spring Web 入門項目

  2. 在項目中創(chuàng)建一個新的 Java 類并為其命名Controller。@RestController在類級別添加注釋。

  3. 在SpringBootApplication中配置RestTemplate對象

  4. 在類中自動裝配該RestTemplate對象Controller

  5. 在類中創(chuàng)建一個方法Controller,使用RestTemplate,將調(diào)用@PostMapping他們的 API。


查看完整回答
反對 回復(fù) 2023-06-28
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗 獲得超7個贊

  • 你可以嘗試這個方法

  • 這是簡單的方法

  • 您可以將用戶名和密碼設(shè)置為基本身份驗證

  public class RESTInvoker {

        private final String baseUrl;

        private final String username;

        private final String password;


        public RESTInvoker(String baseUrl, String username, String password) {

            this.baseUrl = baseUrl;

            this.username = username;

            this.password = password;

        }




        String getDataFromServer(String path) {

            StringBuilder sb = new StringBuilder();

            try {

                URL url = new URL(baseUrl + path);

                URLConnection urlConnection = setUsernamePassword(url);

                BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

                String line;

                while ((line = reader.readLine()) != null) {

                    sb.append(line);

                }

                reader.close();


                return sb.toString();

            } catch (Exception e) {

                throw new RuntimeException(e);

            }

        }


        private URLConnection setUsernamePassword(URL url) throws IOException {

            URLConnection urlConnection = url.openConnection();

            String authString = username + ":" + password;

            String authStringEnc = new String(Base64.encodeBase64(authString.getBytes()));

            urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);

            return urlConnection;

        }

    }


查看完整回答
反對 回復(fù) 2023-06-28
  • 3 回答
  • 0 關(guān)注
  • 267 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號