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

Flask接收SOAP服务返回的XML响应并保存为本地文件的实现方法

这个需求完全可以实现,核心逻辑是你配置的endpoint_response对应的Flask路由接收SOAP服务POST过来的XML原始数据,写入本地文件即可。

实现步骤

1. 安装依赖

首先安装Flask框架:

pip install flask

2. 编写Flask服务端代码

from flask import Flask, request
import os
from datetime import datetime

app = Flask(__name__)
# 配置XML文件保存目录,代码会自动创建该目录
SAVE_DIR = "./soap_responses"
os.makedirs(SAVE_DIR, exist_ok=True)

@app.route("/save_response", methods=["POST"])
def save_soap_response():
    # 直接获取请求体中的原始XML数据
    xml_content = request.get_data(as_text=True)
    # 生成唯一文件名避免覆盖,你也可以从XML内容中提取order、id_s等业务字段作为文件名前缀
    file_name = f"soap_response_{datetime.now().strftime('%Y%m%d%H%M%S%f')}.xml"
    file_path = os.path.join(SAVE_DIR, file_name)
    # 写入本地文件
    with open(file_path, "w", encoding="utf-8") as f:
        f.write(xml_content)
    # 返回200状态码告知SOAP服务接收成功
    return "success", 200

if __name__ == "__main__":
    # 监听端口和你配置的endpoint_response地址保持一致
    app.run(host="0.0.0.0", port=5000, debug=True)

3. 运行测试流程

  • 先启动上面编写的Flask服务,确认http://localhost:5000可以正常访问
  • 运行你现有SOAP客户端代码,触发SOAP服务向指定地址推送异步响应
  • 到SAVE_DIR配置的目录下即可查看生成的XML文件

注意事项

  • 如果SOAP服务和Flask服务不在同一台机器,endpoint_response需要替换为Flask服务所在机器的公网IP/域名+端口,确保SOAP服务可以正常访问到该地址
  • 如果SOAP服务推送请求有签名、身份校验等要求,可以在路由中通过request.headers获取请求头完成校验后再存储文件
  • debug模式仅用于开发环境,生产环境需要关闭debug,使用WSGI服务器部署Flask服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:48:03