Python 调用API接口方式,通过http.client调用api接口,远程调用flask接口方式

一、创建接口(如果调用别人的接口,跳过此条)

如果没有api,首先自己写一个接口玩一下:

必备知识:一个项目最基本的文件,接口run.py文件、config文件以及服务的主体函数文件,在这里我分别命名为run.py、config.py、service.py作为例子,当然大项目的文件要更复杂,分为多个模块,但是万变不离其宗。

run.py文件如下

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------

from flask import Flask, request
import json
from service import service_function
from config import *

app = Flask(__name__)

#API_DIR接口路径,METHOD调用方法
@app.route(API_DIR, methods=METHOD)
def API_service():
    try:
        get_Data = json.loads(request.get_data())
        content = get_Data.get('content')
        result =  service_function(content)
        return json.dumps(result, ensure_ascii=False, indent=4)
    except:
        return json.dumps({'error': '此接口内部错误'}, ensure_ascii=False)

if __name__ == "__main__":
    app.run(host=IP, debug=True, port=PORT,threaded=True)

 service.py文件如下:

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------

def service_function(content):
    flag_list = list()
    flag = ''
    univer_list_first_class = ["北京大学"]
    univer_list_985 = ['北京大学']
    univer_list_211 = ['北京大学']
    if content in univer_list_first_class:
        flag = '世界一流大学'
        flag_list.append(flag)
    if content in univer_list_985:
        flag = '985大学'
        flag_list.append(flag)
    if content in univer_list_211:
        flag = '211大学'
        flag_list.append(flag)
    return flag_list

config.py 文件如下:

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------
import os
base_dir = os.path.split(os.path.realpath(__file__))[0]

API_DIR = '/University/Class'


IP = "0.0.0.0"
PORT = 5005
METHOD = ["POST"]

运行接口文件run.py,如下则启用成功:

 验证环节:

postman调用验证:左侧调用,右侧结果

 二、API调用接口

python 内置模块的接口调用:

应用模块http.client

直接上代码:

# -------------------------------------------------------------------------------
# coding:utf-8
# Description:  
# Reference:
# Author: dacongming
# Date:   2022/9/5
# -------------------------------------------------------------------------------
import http.client
import json

def call_api(inputdata):
    """
    :param inputdata: 单个样本的输入参数,是字典格式的数据
    :return: 单个样本的探真查询变量结果数据
    """
    #配置参数IP,根据自己情况修改,此处为本地调用
    url = '127.0.0.1'

    # 调用接口
    connection = http.client.HTTPConnection(url,5005)#需要根据自己情况修改,5005为端口号
    headers = {'Content-type': 'application/json'}
    json_inputdata = json.dumps(inputdata)
    connection.request('POST', '/University/Class', json_inputdata, headers)
    response = connection.getresponse()
    res_dic = json.loads(response.read().decode())
    
    return res_dic

if __name__ == "__main__":
    inputdata = {"content":"北京大学"}
    result = call_api(inputdata)
    print(result)

结果:

猜你喜欢

转载自blog.csdn.net/L_goodboy/article/details/125389355