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

Android模拟器无法通过Flask向远程服务器传输数据

Flask "Not Found" 错误排查与解决

问题现象

运行Flask服务器时,收到错误提示:

Not Found:请求的URL在服务器上未找到。如果您手动输入了URL,请检查拼写并重试。

错误原因及解决方法

1. 请求路径/方法不匹配

当前代码仅配置了根路径/的POST请求路由,以下情况会触发Not Found:

  • 用GET方法访问/
  • 访问了未定义的其他路径(如/upload)

解决:

  • 若需要支持GET访问根路径,修改路由装饰器并添加GET逻辑:
@app.route('/', methods=['GET', 'POST'])
def handle_call_logs():
    if request.method == 'GET':
        return jsonify({'message': '请使用POST方法上传名为call_log的文件'})
    # 原POST逻辑保持不变
  • 确保客户端向http://localhost:5000/发送POST请求。

2. 客户端请求参数错误

代码中接收的文件参数名为call_log,若客户端上传时参数名不一致,会导致请求处理失败。需确保客户端请求中携带的文件参数名为call_log。

3. 额外优化:确保上传目录存在

代码中指定的上传目录若不存在,保存文件时会报错,建议在初始化时添加目录创建逻辑:

# 在配置完UPLOAD_FOLDER后添加
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)

测试命令

可用以下curl命令测试POST请求是否正常:

curl -X POST -F "call_log=@your_file.csv" http://localhost:5000/

完整优化代码

from flask import Flask, request, jsonify
from werkzeug.utils import secure_filename
import os

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = 'C:\\Users\\leech\\Desktop\\University\\year2-tri2\\2207\\calllogs\\uploads'
app.config['ALLOWED_EXTENSIONS'] = {'txt', 'csv'}
# 确保上传目录存在
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)

def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']

@app.route('/', methods=['GET', 'POST'])
def handle_call_logs():
    if request.method == 'GET':
        return jsonify({'message': '请使用POST方法上传名为call_log的文件'})
    elif request.method == 'POST':
        file = request.files.get('call_log')
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
            file.save(file_path)
            return jsonify({'status': 'success'})
        else:
            return jsonify({'status': 'failed', 'reason': '无效的文件或未提供文件'})
    else:
        return jsonify({'status': 'Invalid request method'})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:15:31