Python提供API给JAVA调用,实现Python和Java之间的交互

一、Java 调用Python 提供的API接口,有多种方法,本文通过Python 提供的Rest API进行调用

二、在Python中创建一个REST API,你可以使用许多框架,其中两个最流行的框架是Flask和Django REST framework。这两个框架都提供了创建RESTful服务的强大功能

三、代码

案例: 通过url带参数传递

1、Python (Rest API)

这里需要提前安装flask库。

bash 复制代码
from flask import Flask, request, jsonify

app = Flask(__name__)


@app.route('/hello', methods=['GET'])
def process_data():
    param = request.args.get('param')
    result = "Hello "+param+"!"
    return jsonify({'result': result})

if __name__ == '__main__':
    app.run(debug=True)

2、Java代码

Java 是Maven项目,需要在pom.xml中导入okhttp包:

bash 复制代码
     <dependency>
             <groupId>com.squareup.okhttp3</groupId>
             <artifactId>okhttp</artifactId>
            <version>4.9.1</version>
        </dependency>

Java代码如下:

bash 复制代码
import okhttp3.*;

import java.io.IOException;

public class JavaClient {
    public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");

    OkHttpClient client = new OkHttpClient();

    String get(String url) throws IOException {

        Request request = new Request.Builder()
                .url(url)
                .build();
        try (Response response = client.newCall(request).execute()) {
            return response.body().string();
        }
    }

    public static void main(String[] args) {
        JavaClient client = new JavaClient();
        String response = null;
        try {
            response = client.get("http://localhost:5000/hello?param=jieke");
            System.out.println(response);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
相关推荐
二进制person15 小时前
Java EE初阶 --多线程2
java·开发语言
yue00815 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
007php00716 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
Mr.Jessy16 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
午安~婉16 小时前
javaScript八股问题
开发语言·javascript·原型模式
想不明白的过度思考者16 小时前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust
景彡先生16 小时前
Python pandas数据透视表(pivot_table)详解:从入门到实战,多维数据分析利器
python·数据分析·pandas
西西学代码16 小时前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter
芝麻开门-新起点16 小时前
flutter 生命周期管理:从 Widget 到 State 的完整解析
开发语言·javascript·ecmascript
陈果然DeepVersion16 小时前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(五)
java·spring boot·kafka·向量数据库·大厂面试·rag·ai智能客服