python requests 客户端和服务器端编写 sample(图片接发base64传输)

  • Post author:
  • Post category:python


客户端:

import requests
import base64

def base_img(img_im):
    return base64.b64encode(cv2.imencode('.jpg',img_im)[1]).decode()


pic_path = r'***.png'
img_im = cv2.imread(pic_path)
base64_img = base_img(img_im)

data = {"rtpmurl":"rtmp url",
       "applydate":"2020-03-20 20:26:31",
       "camera_status":"statu01",
       "backurl":"回传url",
       "base64_img":base64_img}


url = "服务器链接路径"
headers = {'Content-Type':'application/json;charset=UTF-8'} # 头文件
res = requests.request("post",url,json=data, headers=headers) # post方法;
print(res.status_code)
print(res.text)

服务器端:

from flask import Flask, jsonify, request
import os

app = Flask('testserver')
basedir = os.path.abspath('.')


@app.route('/server_v4', methods=['POST', 'GET'])
def api_upload():
	global rtmp_url_set,url_bianhao
    if request.method == 'GET':
        print("hello world")
        return "success"
    else:
        print('hello world')
        print(request)
       
        rtpmurl = request.json['rtpmurl']
        if rtpmurl not in rtmp_url_set.keys():
            url_bianhao += 1
            rtmp_url_set[rtpmurl] = "%02d" % url_bianhao
            os.makedirs(os.path.join(basepath,rtmp_url_set[rtpmurl]),exist_ok=True)


        # 地址
        # print(rtpmurl)
        backurl = request.json['backurl']
        applydate = request.json['applydate']
		
        # 申请时间
        camera_status = CAMERA_STATUS_START
		
        # 图片解压
        if "base64image" in request.json:
            data = request.json['base64image']
            length = len(os.listdir(os.path.join(basepath,rtmp_url_set[rtpmurl])) + 1
            name = rtmp_url_set[rtpmurl] + '_' + str(length) + '.jpg'
            path = os.path.join(basepath, rtmp_url_set[rtpmurl],name)
            fh = open(path, "wb")
            fh.write(base64.b64decode(data))  # 转换为image
            fh.close()


if __name__ == '__main__':
	global rtmp_url_set,url_bianhao
    rtmp_url_set = {}
    url_bianhao = 0
    app.run(debug=False, host="192.168.2.54", port=9000)



版权声明:本文为oyjwin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。