我正在尝试使用requests
通过XMLRPC连接到nessus服务器。以下wget
调用正常运行:
wget -q --no-check-certificate \
--post-data 'login=admin&password=adminpassword' \
https://nessus.example.com:8834/login
我想把它移植到python但是:
>>> import requests
>>> r = requests.post("https://nessus.example.com:8834/login",
data={'user': 'admin', 'password': 'adminpassword'}, verify=False)
>>> r
<Response [500]>
>>> r.text
u'<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">\r\n
<html><head>\r\n<title>500 Unknown Error</title></head>
<body><h1>Unknown Error</h1><p>An unknown error occured</p></body></html>'
我怀疑我传递POST
正文的方式不正确(错误消息无效)。我尝试了一些其他变体(例如data='login=admin&password=adminpassword'
,以模仿wget
中的变体) - 相同的结果。
服务器端日志也无济于事:
10.0.1.2 - - [28/Jan/2014:07:13:00 GMT] "POST /login HTTP/1.1" 500
178 "-" "python-requests/2.0.0 CPython/2.7.6 Linux/3.10-2-amd64"
传递此POST正文的正确方法是什么?