server端
from flask import Flask, request, Response
import base64
import flask
import json
def base64_decode_image(a):
if sys.version_info.major == 3:
a = bytes(a, encoding="utf-8")
return base64.b64decode(a)
app = flask.Flask(__name__)
@app.route("/predict", methods=["POST"])
def predict():
r = request.json
rjson = json.loads(r)
data = rjson['image']
image = base64_decode_image(data)
image = Image.open(io.BytesIO(image))
result = predict_image(image)
response_pickled = json.dumps(result)
return Response(response=response_pickled, status=200, mimetype="application/json")
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000)
client端
import base64
import json
import requests
def base64_encode_image(a):
return base64.b64encode(a).decode("utf-8")
def main():
image = open(image_path, "rb").read()
image = base64_encode_image(image)
data = {"image": image}
response = requests.post('http://localhost:5000' + "/predict", json=json.dumps(data), headers={"Content-Type": "application/json"})
print(response.text)
if __name__ == '__main__':
main()