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

Java實現(xiàn)調用接口API并返回數(shù)據(jù)

 更新時間:2024年05月13日 10:47:23   作者:rfos  
這篇文章主要介紹了Java實現(xiàn)調用接口API并返回數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Java調用接口API并返回數(shù)據(jù)

Get方法

import com.alibaba.fastjson.JSONObject;
import edu.zhku.fire_ant_project.config.WxConstant;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HttpCallOtherInterfaceUtils {
    public static void main(String args[]) {
        HttpClient client = HttpClients.createDefault();
        // 要調用的接口方法
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ WxConstant.appid +"&secret="+WxConstant.secret;
        HttpGet httpGet=new HttpGet(url);
        JSONObject jsonObject = null;
        try {
            HttpResponse res = client.execute(httpGet);
            if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                // 返回json格式:
                jsonObject = JSONObject.parseObject(EntityUtils.toString(res.getEntity()));
                System.out.println(jsonObject);
            }
        } catch (Exception e) {
            System.out.println("服務間接口調用出錯!");
            e.printStackTrace();
        }
    }
}

post方法

import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class HttpCallOtherInterfaceUtils {
    public static String callOtherInterface(JSONObject jsonParam, String port, String postUrl) {
        HttpClient client = HttpClients.createDefault();
        // 要調用的接口方法
        String url = "http://localhost:" + port + postUrl;
        HttpPost post = new HttpPost(url);
        JSONObject jsonObject = null;
        try {
            StringEntity s = new StringEntity(jsonParam.toString(), "UTF-8");
            //s.setContentEncoding("UTF-8");//此處測試發(fā)現(xiàn)不能單獨設置字符串實體的編碼,否則出錯!應該在創(chuàng)建對象時創(chuàng)建
            s.setContentType("application/json");
            post.setEntity(s);
            post.addHeader("content-type", "application/json;charset=UTF-8");
            HttpResponse res = client.execute(post);
            if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                // 返回json格式:
                jsonObject = JSONObject.parseObject(EntityUtils.toString(res.getEntity()));
            }
        } catch (Exception e) {
            System.out.println("服務間接口調用出錯!");
            e.printStackTrace();
            //throw new RuntimeException(e);
        }
        return jsonObject.toString();
    }
}

Java跨服務調用接口

Java程序跨服務調用接口,通??梢允褂靡韵路绞剑?/p>

  • RESTful API:通過HTTP協(xié)議進行通信,使用RESTful API調用其他服務的接口。
  • RPC:使用遠程過程調用(RPC)框架,如Dubbo、gRPC等,通過序列化和反序列化技術實現(xiàn)跨服務調用。
  • 消息隊列:使用消息隊列,如Kafka、RabbitMQ等,服務之間通過消息隊列進行異步通信。
  • HTTP客戶端:使用Java內置的HTTP客戶端,如HttpURLConnection、Apache HttpClient等,通過HTTP協(xié)議調用其他服務的接口。

無論使用哪種方式,都需要了解其他服務的接口定義和調用方式,以及網(wǎng)絡通信的安全性和穩(wěn)定性等方面的考慮。同時,需要注意接口版本的兼容性和錯誤處理等問題。

這里提供一個使用Java內置的HttpURLConnection進行POST請求的示例代碼:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class HttpPostExample {
 
    private static final String POST_URL = "http://engine-server-host:port/api/client/data/push";
    private static final String USER_AGENT = "Mozilla/5.0";
 
    public static void main(String[] args) throws IOException {
        URL obj = new URL(POST_URL);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
 
        // 添加請求頭
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
 
        // 設置POST請求體
        String postBody = "your_post_body_here";
        con.setDoOutput(true);
        try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
            wr.writeBytes(postBody);
            wr.flush();
        }
 
        // 發(fā)送POST請求并獲取響應
        int responseCode = con.getResponseCode();
        System.out.println("POST Response Code :: " + responseCode);
 
        try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
            String inputLine;
            StringBuilder response = new StringBuilder();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            System.out.println("POST Response :: " + response.toString());
        }
    }
}

在代碼中,需要將POST_URL替換為引擎端的API接口地址,將postBody替換為要發(fā)送的POST請求體。

需要注意的是,這里的POST請求體需要按照引擎端API接口的要求進行格式化。 

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關文章

  • idea中導入項目后main方法無法Run的解決

    idea中導入項目后main方法無法Run的解決

    這篇文章主要介紹了idea中導入項目后main方法無法Run的解決方案,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • springboot+mybatis報錯找不到實體類的問題

    springboot+mybatis報錯找不到實體類的問題

    這篇文章主要介紹了springboot+mybatis報錯找不到實體類的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java簡單使用redis-zset實現(xiàn)排行榜

    Java簡單使用redis-zset實現(xiàn)排行榜

    這篇文章主要介紹了Java簡單使用redis-zset實現(xiàn)排行榜,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 優(yōu)雅地在Java 8中處理異常的方法詳解

    優(yōu)雅地在Java 8中處理異常的方法詳解

    異常處理是我們在日常開發(fā)中經(jīng)常會遇到的一種需求,下面這篇文章主要給大家介紹了關于如何優(yōu)雅地在Java 8中處理異常的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們來一起看看吧
    2019-01-01
  • Java字節(jié)與字符流永久存儲json數(shù)據(jù)

    Java字節(jié)與字符流永久存儲json數(shù)據(jù)

    本篇文章給大家詳細講述了Java字節(jié)與字符流永久存儲json數(shù)據(jù)的方法,以及代碼分享,有興趣的參考學習下。
    2018-02-02
  • SpringBoot框架集成ElasticSearch實現(xiàn)過程示例詳解

    SpringBoot框架集成ElasticSearch實現(xiàn)過程示例詳解

    這篇文章主要為大家介紹了SpringBoot如何集成ElasticSearch的實現(xiàn)過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Java實現(xiàn)map轉換成json的方法詳解

    Java實現(xiàn)map轉換成json的方法詳解

    這篇文章主要為大家詳細介紹了Java語言實現(xiàn)map轉換成json的幾種方法,文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-05-05
  • Java語言實現(xiàn)簡單FTP軟件 FTP軟件本地窗口實現(xiàn)(5)

    Java語言實現(xiàn)簡單FTP軟件 FTP軟件本地窗口實現(xiàn)(5)

    這篇文章主要為大家詳細介紹了Java語言實現(xiàn)簡單FTP軟件,F(xiàn)TP軟件本地窗口的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • springboot使用jasypt加密庫實現(xiàn)數(shù)據(jù)庫加解密示例代碼

    springboot使用jasypt加密庫實現(xiàn)數(shù)據(jù)庫加解密示例代碼

    這篇文章主要給大家介紹了關于springboot使用jasypt加密庫實現(xiàn)數(shù)據(jù)庫加解密的相關資料,Jasypt是一個用于配置文件加密的Java庫,它可以用來加密和解密配置文件中的敏感信息,如數(shù)據(jù)庫密碼、API?密鑰等,需要的朋友可以參考下
    2024-04-04
  • java項目如何引入其他jar包

    java項目如何引入其他jar包

    通常在lib文件夾中存放從外部引入的jar包,所以把JAR文件復制進去。 然后修改編譯腳本,不需要去編譯tool文件夾里面的java類,直接把jar包添加到classpath,下文將詳細介紹
    2021-10-10

最新評論

桂林市| 尉氏县| 连南| 崇义县| 沙田区| 高淳县| 锦州市| 安泽县| 顺昌县| 巩留县| 库伦旗| 双牌县| 大冶市| 新干县| 都江堰市| 京山县| 定日县| 德庆县| 鄂温| 手机| 伽师县| 元阳县| 阳西县| 新蔡县| 五家渠市| 池州市| 陆川县| 新化县| 江门市| 天祝| 宁乡县| 阿合奇县| 绵阳市| 南丹县| 通辽市| 刚察县| 毕节市| 南平市| 琼中| 淳安县| 武威市|