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

舉例說明JAVA調(diào)用第三方接口的GET/POST/PUT請(qǐng)求方式

 更新時(shí)間:2024年01月09日 09:05:29   作者:英勇的小王同志  
在日常工作和學(xué)習(xí)中,有很多地方都需要發(fā)送請(qǐng)求,這篇文章主要給大家介紹了關(guān)于JAVA調(diào)用第三方接口的GET/POST/PUT請(qǐng)求方式的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

GET請(qǐng)求

public static String doGet(String url, String charset){

        System.out.println("請(qǐng)求的接口:"+url);

        /**
         * 1.生成HttpClient對(duì)象并設(shè)置參數(shù)
         */
        HttpClient httpClient = new HttpClient();
        //設(shè)置Http連接超時(shí)為5秒
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

        /**
         * 2.生成GetMethod對(duì)象并設(shè)置參數(shù)
         */
        GetMethod getMethod = new GetMethod(url);
        //設(shè)置get請(qǐng)求超時(shí)為5秒
        getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
        //設(shè)置請(qǐng)求重試處理,用的是默認(rèn)的重試處理:請(qǐng)求三次
        getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

        String response = "";

        /**
         * 3.執(zhí)行HTTP GET 請(qǐng)求
         */
        try {
            int statusCode = httpClient.executeMethod(getMethod);

            /**
             * 4.判斷訪問的狀態(tài)碼
             */
            if (statusCode != HttpStatus.SC_OK){
                System.err.println("請(qǐng)求出錯(cuò):" + getMethod.getStatusLine());
            }

            /**
             * 5.處理HTTP響應(yīng)內(nèi)容
             */
            //HTTP響應(yīng)頭部信息,這里簡單打印
            Header[] headers = getMethod.getResponseHeaders();
           /* for (Header h: headers){
                System.out.println(h.getName() + "---------------" + h.getValue());
            }*/
            //讀取HTTP響應(yīng)內(nèi)容,這里簡單打印網(wǎng)頁內(nèi)容
            //讀取為字節(jié)數(shù)組
            byte[] responseBody = getMethod.getResponseBody();
            response = new String(responseBody, charset);
            System.out.println("接口返回?cái)?shù)據(jù)為:" + response);
            //讀取為InputStream,在網(wǎng)頁內(nèi)容數(shù)據(jù)量大時(shí)候推薦使用
            //InputStream response = getMethod.getResponseBodyAsStream();
            return response;
        } catch (HttpException e) {
            //發(fā)生致命的異常,可能是協(xié)議不對(duì)或者返回的內(nèi)容有問題
            System.out.println("請(qǐng)檢查輸入的URL!");
            e.printStackTrace();
            return "調(diào)用GET請(qǐng)求失敗";
        } catch (IOException e){
            //發(fā)生網(wǎng)絡(luò)異常
            System.out.println("發(fā)生網(wǎng)絡(luò)異常!");
            e.printStackTrace();
            return "調(diào)用GET請(qǐng)求失敗";
        }finally {
            /**
             * 6.釋放連接
             */
            getMethod.releaseConnection();
        }
    }
//get請(qǐng)求示例
String result = HttpClientToInterface.doGet("http://127.0.0.1:8085/xxxx/xxxx?yy=yyyyyy&zz=zzzzzzz","UTF-8");

POST請(qǐng)求

public static String doPost(String url, String charset){

        System.out.println("請(qǐng)求的接口:"+url);

        /**
         * 1.生成HttpClient對(duì)象并設(shè)置參數(shù)
         */
        HttpClient httpClient = new HttpClient();
        //設(shè)置Http連接超時(shí)為5秒
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

        /**
         * 2.生成PostMethod對(duì)象并設(shè)置參數(shù)
         */
        PostMethod postMethod = new PostMethod(url);
        //設(shè)置post請(qǐng)求超時(shí)為5秒
        postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
        //設(shè)置請(qǐng)求重試處理,用的是默認(rèn)的重試處理:請(qǐng)求三次
        postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());

        String response = "";

        /**
         * 3.執(zhí)行HTTP POST 請(qǐng)求
         */
        try {
            int statusCode = httpClient.executeMethod(postMethod);

            /**
             * 4.判斷訪問的狀態(tài)碼
             */
            if (statusCode != HttpStatus.SC_OK){
                System.err.println("請(qǐng)求出錯(cuò):" + postMethod.getStatusLine());
            }

            /**
             * 5.處理HTTP響應(yīng)內(nèi)容
             */
            //HTTP響應(yīng)頭部信息,這里簡單打印
            Header[] headers = postMethod.getResponseHeaders();
           /* for (Header h: headers){
                System.out.println(h.getName() + "---------------" + h.getValue());
            }*/
            //讀取HTTP響應(yīng)內(nèi)容,這里簡單打印網(wǎng)頁內(nèi)容
            //讀取為字節(jié)數(shù)組
            byte[] responseBody = postMethod.getResponseBody();
            response = new String(responseBody, charset);
            System.out.println("接口返回?cái)?shù)據(jù)為:" + response);
            //讀取為InputStream,在網(wǎng)頁內(nèi)容數(shù)據(jù)量大時(shí)候推薦使用
            //InputStream response = getMethod.getResponseBodyAsStream();
            return response;
        } catch (HttpException e) {
            //發(fā)生致命的異常,可能是協(xié)議不對(duì)或者返回的內(nèi)容有問題
            System.out.println("請(qǐng)檢查輸入的URL!");
            e.printStackTrace();
            return "調(diào)用POST請(qǐng)求失敗";
        } catch (IOException e){
            //發(fā)生網(wǎng)絡(luò)異常
            System.out.println("發(fā)生網(wǎng)絡(luò)異常!");
            e.printStackTrace();
            return "調(diào)用POST請(qǐng)求失敗";
        }finally {
            /**
             * 6.釋放連接
             */
            postMethod.releaseConnection();
        }
    }
//post請(qǐng)求示例
String result = HttpClientToInterface.doPost("http://127.0.0.1:8085/xxxx/xxxx?yy=yyyyyy&zz=zzzzzzz","UTF-8");

POST請(qǐng)求(JSON傳參)

public static String doPost(String url, JSONObject json){
        try {
            CloseableHttpClient httpClient = HttpClientBuilder.create().build();
            HttpPost post = new HttpPost(url);

            // 首先Header部分需要設(shè)定字符集為:uft-8
            post.addHeader("Content-Type", "application/json;charset=utf-8");
            // 此處也需要設(shè)定
            post.setHeader("Accept", "*/*");
            post.setHeader("Accept-Encoding", "gzip, deflate, br");
//            post.setHeader("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            post.setHeader("Connection", "keep-alive");
            post.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36");
            post.setEntity(new StringEntity(json.toString(), Charset.forName("UTF-8"))); //設(shè)置請(qǐng)求參數(shù)
            HttpResponse response = httpClient.execute(post);
            int statusCode = response.getStatusLine().getStatusCode();
            if (HttpStatus.SC_OK == statusCode){
                //返回String
                String res = EntityUtils.toString(response.getEntity());
                System.out.println(res);
                return res;
            }else{
                return "調(diào)用POST請(qǐng)求失敗";
            }

        } catch (Exception e) {
            e.printStackTrace();
            return "調(diào)用POST請(qǐng)求失敗";
        }
    }
//post請(qǐng)求示例-josn傳參
 Map<String, Object> map = new HashMap<>();
 map.put("xxxx", "xxxxxx");
 map.put("xxxxx", "xxxxxx");
 JSONObject json = new JSONObject(map);

//以post形式請(qǐng)求接口
 String result = HttpClientToInterface.doPost("http://127.0.0.1:8085/xxxx/xxxxx/", json);
 JSONObject jsonObject = JSONObject.parseObject(result);
 String data = jsonObject.get("data").toString();

PUT請(qǐng)求(傳TOKEN)

public static String doPut(String url,String token){
        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
            HttpPut httpPut = new HttpPut(url);
            //設(shè)置編碼 , 設(shè)置token參數(shù)
            httpPut.addHeader("Authentication", token);
            // 首先Header部分需要設(shè)定字符集為:uft-8
            httpPut.addHeader("Content-Type", "application/json;charset=utf-8");
            // 此處也需要設(shè)定
            httpPut.setHeader("Accept", "*/*");
            httpPut.setHeader("Accept-Encoding", "gzip, deflate, br");
//            post.setHeader("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            httpPut.setHeader("Connection", "keep-alive");
            httpPut.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36");
            //設(shè)置請(qǐng)求參數(shù)

            System.out.println("Executing request " + httpPut.getRequestLine());

            // Create a custom response handler
            ResponseHandler<String> responseHandler = response -> {
                int status = response.getStatusLine().getStatusCode();
                if (status >= 200 && status < 300) {
                    HttpEntity entity = response.getEntity();
                    return entity != null ? EntityUtils.toString(entity) : null;
                } else {
                    throw new ClientProtocolException("Unexpected response status: " + status);
                }
            };
            String responseBody = httpclient.execute(httpPut, responseHandler);
            System.out.println("接口返回?cái)?shù)據(jù)為:"+responseBody);
            return responseBody;
        } catch (IOException e) {
            e.printStackTrace();
            return "調(diào)用PUT請(qǐng)求失敗";
        }
    }
//put請(qǐng)求示例
String result = HttpClientToInterface.doPut("http://127.0.0.1:8085/xxxx/xxxxx", token);

總結(jié) 

到此這篇關(guān)于JAVA調(diào)用第三方接口的GET/POST/PUT請(qǐng)求方式的文章就介紹到這了,更多相關(guān)JAVA調(diào)用第三方接口請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot利用Thymeleaf發(fā)送Email的方法教程

    Spring Boot利用Thymeleaf發(fā)送Email的方法教程

    spring Boot默認(rèn)就是使用thymeleaf模板引擎的,下面這篇文章主要給大家介紹了關(guān)于在Spring Boot中利用Thymeleaf發(fā)送Email的方法教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • Java代碼中如何設(shè)置輸出字符集為UTF-8

    Java代碼中如何設(shè)置輸出字符集為UTF-8

    這篇文章主要介紹了Java代碼中設(shè)置輸出字符集為UTF-8,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • mybatis-flex實(shí)現(xiàn)多數(shù)據(jù)源操作

    mybatis-flex實(shí)現(xiàn)多數(shù)據(jù)源操作

    MyBaits-Flex內(nèi)置了功能完善的多數(shù)據(jù)源支持,本文主要介紹了mybatis-flex實(shí)現(xiàn)多數(shù)據(jù)源操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java定時(shí)清理過期文件的實(shí)例代碼

    Java定時(shí)清理過期文件的實(shí)例代碼

    這篇文章主要介紹了Java定時(shí)清理過期文件的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-12-12
  • Java中枚舉的toString()和name()區(qū)別小結(jié)

    Java中枚舉的toString()和name()區(qū)別小結(jié)

    本文主要介紹了Java中枚舉的toString()和name()區(qū)別小結(jié),name()返回原始名稱,不可重寫;toString()可重寫以提供更友好的描述,二者用于不同場景,下面就來具體了解一下
    2025-08-08
  • 8張圖帶你全面了解Java?kafka的核心機(jī)制

    8張圖帶你全面了解Java?kafka的核心機(jī)制

    kafka是目前企業(yè)中很常用的消息隊(duì)列產(chǎn)品,可以用于削峰、解耦、異步通信,本文就通過幾張圖帶大家全面認(rèn)識(shí)一下kafka,現(xiàn)在我們不妨帶入kafka設(shè)計(jì)者的角度去思考該如何設(shè)計(jì),它的架構(gòu)是怎么樣的、都有哪些組件組成、如何進(jìn)行擴(kuò)展等等,需要的朋友可以參考下
    2023-05-05
  • Java 中使用數(shù)組存儲(chǔ)和操作數(shù)據(jù)

    Java 中使用數(shù)組存儲(chǔ)和操作數(shù)據(jù)

    本文將介紹Java中常用的數(shù)組操作方法,通過詳細(xì)的示例和解釋,幫助讀者全面理解和掌握這些方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • 淺談servlet與jsp的關(guān)系

    淺談servlet與jsp的關(guān)系

    本文主要介紹了servlet與jsp的相關(guān)知識(shí),并總結(jié)出servlet與jsp之間的關(guān)系,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • Java Thread之Sleep()案例詳解

    Java Thread之Sleep()案例詳解

    這篇文章主要介紹了Java Thread之Sleep()案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring Event事件通知機(jī)制解讀

    Spring Event事件通知機(jī)制解讀

    這篇文章主要介紹了Spring Event事件通知機(jī)制解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評(píng)論

水城县| 花莲县| 绥滨县| 望城县| 逊克县| 连平县| 潼关县| 城固县| 大丰市| 彭泽县| 凯里市| 瓮安县| 连州市| 阿坝县| 曲靖市| 江北区| 当阳市| 金阳县| 清流县| 和田县| 拜城县| 封开县| 光泽县| 泰州市| 南和县| 耒阳市| 丹东市| 广州市| 外汇| 积石山| 新乡县| 桐城市| 偏关县| 隆林| 台前县| 页游| 兴仁县| 乳源| 巴东县| 青铜峡市| 滨海县|