首先,先定义一个api,举例:
@app.route('/test')
def index():
resp = flask.Response('success', status=200)
resp.headers.add('Access-Control-Allow-Origin', '*')
return resp
这个时候正常调用 应该返回success
curl http://$IP:$PORT/test
其次,定义GET和POST的方法,以及在bash和python中的调用方法
还是先举个例子:
@app.route('/inference', methods=['GET', 'POST'])
def inference():
if flask.request.method == "GET":
fileurl = flask.request.args.get('imageurl', None)
filename = fileurl.split("://")[1]
image = cv2.imread(filename)
elif flask.request.method == "POST":
upfile = flask.request.files['imagefile']
image = cv2.imdecode(np.fromstring(upfile.stream.read(), dtype=np.uint8), cv2.IMREAD_COLOR)
_op_id = upfile.filename
resp = flask.Response('success', status=200)
resp.headers.add('Access-Control-Allow-Origin', '*')
return resp
此时如果用get的方法如下:
curl -G -d "imageurl=file://$LOCAL_IMAGE" http://$IP:$PORT/inference
如果用post的方法如下:
curl -F "imagefile=@$LOCAL_IMAGE" http://$IP:$PORT/inference
如果在python中实现post:
ret = requests.post(mask_api, files={"imagefile": (file_name, image)}, verify=False)