flask сеанс не сохраняется при вызове вызова из c# mvc веб-приложения - PullRequest
0 голосов
/ 13 июля 2020

Я написал веб-службу в python flask. В моем коде у меня есть объект сеанса flask, и он выглядит хорошо.

Вот небольшой пример того, как выглядит мой код python -

@app.route('/api/simpleTry', methods=['GET'])
def api_simple():
    user_id = request.args['id']
    sentence = request.args['sentence']

    if 'user_id' not in session.keys():
        session['user_id'] = user_id
    return jsonify("hello")
app.run()

, когда я вызываю службу через 'crome' explorer работает хорошо, сеанс сохраняется, и когда я открываю 2 клиента (1-кром, 2-инкогнито), я вижу, что каждый из них имеет отдельный сеанс.

кроме того, я у меня есть веб-приложение C# mvc, которое действует как мой клиент, и там я вызываю python flask сервис, который я написал.

address = "http://localhost:5000/api/simpleTry?id=" + userId + "&sentence=" + sentence;
using (var w = new WebClient())
{
     json_data = w.DownloadString(address);
     ...
}

Код работает хорошо. , но , в отличие от 'crome', при отправке запроса из c# сеанс в python не сохраняется и создает новый сеанс для каждого запроса.

Думаю, мне нужно отправить что-то из C# в службу, чтобы использовать существующий сеанс, но я не знаю, что и как.

1 Ответ

0 голосов
/ 14 июля 2020

Flask сеансов использует файлы cookie для передачи информации о сеансе между клиентом и сервером. Когда вы использовали браузер, браузер является клиентом и автоматически отправляет файлы cookie обратно на сервер. Когда вы используете клиент C#, я не уверен, что он делает это за вас автоматически. Возможно, вам придется прочитать session cook ie из заголовка и отправить его вместе с последующими запросами.

Из документации Flask : This is implemented on top of cookies for you and signs the cookies cryptographically

...