每次发送请求时杀死/创建新会话?

2024-04-23 11:22:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python相当陌生,一直在使用requests模块来处理发送和获取请求。但是,我不知道如何在每次发出POST请求时终止或创建一个新会话。下面是我使用的函数:

def sendRequestTest():

    try:
        session.headers.update({'x-csrftoken': req.cookies['csrftoken']})
        login_data = {'email': EMAIL, 'password': PASSWD, 'username': USERNAME, 'first_name': NAME}
        login = session.post(SIGNUP_URL, data=login_data, allow_redirects=True)
        session.headers.update({'x-csrftoken': login.cookies['csrftoken']})
        cookies = login.cookies
        login_text = json.loads(login.text)
        print(login_text)
    except:
        print("An connection error has occured.")

我试着增加会话.关闭()到函数的结尾,但出现缩进错误。非常感谢任何帮助。在


Tags: 模块函数textdatasessiondefloginupdate
1条回答
网友
1楼 · 发布于 2024-04-23 11:22:28

通过在方法中初始化会话,可以确保每次都创建一个新会话。在

import requests

def sendRequestTest():
    session = requests.Session()  # this will create a new session

    try:
        session.headers.update({'x-csrftoken': req.cookies['csrftoken']})
        login_data = {'email': EMAIL, 'password': PASSWD, 'username': USERNAME, 'first_name': NAME}
        login = session.post(SIGNUP_URL, data=login_data, allow_redirects=True)
        session.headers.update({'x-csrftoken': login.cookies['csrftoken']})
        cookies = login.cookies
        login_text = json.loads(login.text)
        print(login_text)
    except:
        print("An connection error has occured.")

如果需要在发送请求之前修改会话,可以将其作为变量传递给sendRequestTest方法和create the session instance using a context manager

^{pr2}$

相关问题 更多 >