获取sessionid代码如下:
1 #!/usr/bin/env python
2
3 import cookielib
4 from urllib2 import Request, build_opener, HTTPCookieProcessor, HTTPHandler
5 import time ,urllib
6
7 #cj用来保存访问过程中的cookie,用它来初始化opener,以后每次用
#opener来访问url时,都会使用该cookie。这样每次请求的一些变量都
#会相同,如:sessionid
8 cj = cookielib.CookieJar()
9 opener = build_opener(HTTPCookieProcessor(cj),HTTPHandler)
10 f = opener.open("http://10.23.51.20:8001/ok.html")
11 html = f.read()
12
13 print "The cookies are:"
14 for cookie in cj:
15 print cookie
16
17 time.sleep(1)
18 for i in range(10):
19 f = opener.open("http://10.23.51.20:8001/ok.html")
20 html = f.read()
21
22 print "The cookies are:"
23 for cookie in cj:
24 print cookie
25 time.sleep(10)
循环访问http://10.23.51.20:8001/ok.html十次,每次都打印出sessionid,输出结构显示每次的sessionid都是一样的。
但访问openstack的管理页面出现一个异常,搞得我纠结了一下午。例如它的url为:http://10.23.54.150:9696
。用该url来代替上面的url时,输出的sessionid每次都不一样。不知道是sessionid不同是真相还是相同是真相。
猜想:openstack的daskboard可能由于没有登录进去,导致没有存储session。所以每一次访问会新建session,并返回新的sessionid。