Python Flask 接收客户端的各种 content-type

服务端

from flask import Flask, request
from base64 import b64decode

app = Flask(__name__)

@app.route('/server', methods=['POST'])
def server():
    if request.mimetype == 'multipart/form-data': # 上传文件
        data = request.files.get('file', None).read()
    elif request.mimetype == 'application/json': # json格式
        data = b64decode(request.json.get('file', None))
    elif request.mimetype == 'application/x-www-form-urlencoded': # 表单格式
        data = b64decode(request.form.get('file', None))
    elif request.mimetype == '': # 二进制格式
        data = request.data

    if data is not None:
        # 处理上传的文件
        data = data
        with open('test.jpg', 'wb') as f:
            f.write(data)
        return 'Success'
    else:
        return 'No file uploaded'

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

客户端

import requests
from base64 import b64encode

filepath = 'img_0913.jpg'

with open(filepath, 'rb') as f:
    img = f.read()

file = {'file': b64encode(img).decode()}

# 上传二进制数据
print(requests.post('http://localhost:5000/server', data=img).text)

# 上传json文件
print(requests.post('http://localhost:5000/server', json=file).text)

# 上传表单
print(requests.post('http://localhost:5000/server', data=file).text)

# 上传文件
print(requests.post('http://localhost:5000/server', files=file).text)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值