San*_*v S 6 python python-3.x python-requests
如何关闭像s=requests.session()
在Python中创建的会话请求.我需要在调用每个API后清除变量.
应该清除变量,因为我正在尝试使用会话测试API的应用程序.
import json
import requests
import time
s=requests.session()
def Auth():
client_id='client_id'
client_secret='client_secret'
username="username"
password="password"
postURL = "url"
postParams = {
"username" : username,
"password" : password,
"scope" : "home",
"client_id":client_id,
"client_secret":client_secret,
"grant_type":"password"}
s=requests.session()
postResponse = s.post(postURL, data=postParams).json()
#print(postResponse)
accessToken = postResponse["access_token"]
print(accessToken)
return accessToken
def Api(accessToken):
urlp="url"
headers = {
'authorization': "Bearer " + accessToken,
'content-type': "application/json",
}
postParams={
'bbox':'-130.401465,26.977875,-54.463965,54.824098',
'years': '2017',
}
response = s.get(url, data=postParams, headers=headers)
print(response.status_code)
print(response.text)
s.close()
response = s.get(url, data=postParams, headers=headers)
print(response.status_code)
print(response.text)
def main():
accessToken=Auth()
Api(accessToken)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我建议使用with
块来打开会话对象:
import requests
with requests.session() as s:
s.get(url) # do stuff
Run Code Online (Sandbox Code Playgroud)
或者,您必须以这种方式设置'keep_alive'
会话选项:False
import requests
s = requests.session()
s.config['keep_alive'] = False
Run Code Online (Sandbox Code Playgroud)
或者直接在会话声明中:
import requests
s = requests.session(config={'keep_alive': False})
Run Code Online (Sandbox Code Playgroud)