Python: обработка нескольких запросов во Flask - PullRequest
0 голосов
/ 16 апреля 2019

Я создал простое веб-сервисное приложение на Python, которое предоставляет некоторые функции Python из другого класса. Когда я инициирую запрос к локальному узлу, он подключается к API, и представленные функции выполняются так, как и должно, но любые последующие запросы приводят к ошибке.

Вот мой код:

webservice.py

#!flask/bin/python

from flask import Flask
from flask import request
import sys
sys.path.append('/src/')
from encrypto import Encrypto

app = Flask(__name__)

@app.route('/call/<function_name>/<arg>', methods=['GET'])

def callFunction(function_name: str, arg: str):
    functionToCall = getattr(Encrypto(), function_name)
    return str(functionToCall(arg))

if __name__ == '__main__':
    app.run(host='localhost', threaded=True)

Вот то, что я запускаю как демо:

# concurrent requests - encrypt/decrypt
url = ["http://localhost:5000/call/encrypt/blahblah", "https://localhost:5000/call/encrypt/oranges",
       "https://localhost:5000/call/decrypt/apples"]
w = WebGet().geturls(url,10)
print(w)

Это приводит к следующей ошибке:

Error HTTPSConnectionPool(host='localhost', port=5000): Max retries exceeded with url: /call/encrypt/oranges (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'unknown protocol')],)",),)): Could not access this url: https://localhost:5000/call/encrypt/oranges

 Error HTTPSConnectionPool(host='localhost', port=5000): Max retries exceeded with url: /call/decrypt/apples (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'unknown protocol')],)",),)): Could not access this url: https://localhost:5000/call/decrypt/apples
[('http://localhost:5000/call/encrypt/blahblah', b'1011989968'), ('https://localhost:5000/call/encrypt/oranges', ''), ('https://localhost:5000/call/decrypt/apples', '')]

Как видно из приведенного выше вывода, два последующих вызова API возвращают пустую строку, обозначающую ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...