You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一网络下跨主机发送Python请求及Flask服务器转发问询

实现Flask服务间的POST请求转发

嗨,我来帮你搞定这个把请求转发到另一台机器Flask服务的需求!其实很简单,咱们用requests库就能轻松实现,下面是具体的步骤和代码:

第一步:安装依赖

首先得装requests,因为Flask本身不带跨服务请求的工具,打开终端跑这个命令:

pip install requests

第二步:修改你的server.py代码

把原来的doStuff函数改成下面这样,我给你加了完整的转发逻辑和异常处理:

from flask import Flask, request, jsonify
import requests  # 别忘了导入这个库

app = Flask(__name__)

@app.route('/endpointapi', methods=['POST'])
def doStuff():
    try:
        # 获取原请求里的表单数据
        message = request.form['message']
        # 替换成你目标机器的实际IP、端口和对应路由
        target_url = "http://目标机器IP:端口/目标路由"
        
        # 把原表单数据转发给目标服务
        response = requests.post(
            target_url,
            data={'message': message}  # 如果原请求有其他字段,都要加在这里
            # 如果目标服务需要认证头之类的,可以加headers参数:headers={'Authorization': 'your_token'}
        )
        
        # 将目标服务的响应原封不动返回给原客户端
        return response.text, response.status_code
    except KeyError:
        # 处理缺少message参数的情况
        return jsonify({"error": "请求缺少message参数"}), 400
    except requests.exceptions.RequestException as e:
        # 处理请求目标服务失败的情况(比如连接不上、超时)
        return jsonify({"error": f"转发请求失败: {str(e)}"}), 500

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=你的本地服务端口)

几个关键注意事项

  • 目标服务可达性:确保你的本地机器能ping通目标机器的IP,目标机器的Flask服务已经启动,并且对应端口没有被防火墙拦截(比如目标机器要开放端口,或者防火墙允许你的本地IP访问)
  • 参数完整性:如果原请求里除了message还有其他表单字段,记得在data参数里一起传过去,别漏了
  • 响应自定义:上面的代码直接返回目标服务的响应,如果需要二次加工(比如解析后再返回),可以拿到response后自己处理内容
  • HTTPS适配:如果目标服务用HTTPS,把target_url的http改成https就行;如果有证书问题,测试环境可以加verify=False,生产环境建议配置合法证书

内容的提问来源于stack exchange,提问作者jkl0619

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:14:48