使用请求获取sessionId Python
我想获取sessionId,所以我可以做其他请求。
所以,我看着在火狐网络监控(按Ctrl + Shift + Q),看到这一点:使用请求获取sessionId Python
所以,我想知道我怎么能在Python 3的要求去做,并试图像这样的事情:
import requests
payload = {'uid' : 'username',
'pwd' : 'password'}
r = requests.get(r'http://192.168.2.114(cgi-bin/wwwugw.cgi', data=payload)
print r.text
但我总是得到“Response [400]”。
如果请求是正确的,我应该得到的东西是这样的:
感谢
亚历克斯
尽管这不是从你的问题很清楚,但我注意到几个问题什么你正在努力完成。
如果使用会话认证,那么你想发送的session_id作为
Cookie
头,你不这样做。400响应代码表示请求不好,不需要认证。你为什么要在
get
请求中发送数据?数据和查询参数之间有区别。
哦,是的,忘了说我是Python的noob –
是的,我们所有人都犯这样的错误。尽管如此,你需要更好地构建你的问题。 – hspandher
只需使用一个会话,这将处理重定向和cookie为您提供:
import requests
payload = {'uid' : 'username',
'pwd' : 'password'}
with requests.Session() as session:
r = session.post(r'http://192.168.2.114(cgi-bin/wwwugw.cgi', data=payload)
print(r.json)
这样,你不明确需要得到sessionId
,但如果你仍然想,你可以作为字典访问返回的JSON
。
感谢您的答案,以及它不工作,我越来越errno 133.任何其他方式,我可以做到这一点? –
@ Alex.Munoz你可以发布错误吗? – rhillhouse
它应该是'requests.post'。并且必须使用相同的格式传递每个项目。意思是,您还必须包含'method','params'部分。也请确保输入正确的网址。在你的问题中有一个错字。 – Himal
@Himal所以我确实输入了方法参数,现在我得到了Errno 133(payload = {'method':'ugw-login', \t'params':{'uid':'gw', \t 'pwd':'GATEWAY'}}) –
您能否更新您的问题以包含您拥有的最新版本的代码以及您收到的完整错误消息? – Himal