正如here所述,我正在尝试使用POST方法在Bugzilla中创建一个错误。当我尝试以下操作时,我收到了HTTP响应401:
url = "http://10.118.56.55:84/bugzilla/rest.cgi/"
Id = requests.post(url+"bug", data=bug.getBugDictionary())
当然,因为我需要对自己进行身份验证。所以我尝试了这个:
cred = {
'login' : 'admin@admin.com',
'password' : 'passwd@123'
}
r = requests.get("http://10.118.56.55:84/bugzilla/rest.cgi/" + "login", cred)
data = r.json()
token = data['token']
Id = requests.post(self.url+"bug" + "?&token=%s" %(token), data=bug.getBugDictionary())
但是,现在我得到了HTTP响应404.我还尝试在上面的代码中添加login
字段并将Id = requests.post(self.url+"bug" + "?&token=%s" %(token), data=bug.getBugDictionary())
更改为Id = requests.post(self.url+"bug" + "?login=admin@admin.com&token=%s" %(token), data=bug.getBugDictionary())
,但它仍然以404响应。有什么想法吗?
修改
在另一个Python脚本中,我还尝试使用登录REST API viz中的“login”,“password”和返回的字段。我的POST请求标题内的'id'和'token',但似乎也不起作用。在使用POST请求发布/创建错误后,它会返回bugzilla 错误代码410,甚至没有记录在bugzilla的文档上。在以下代码中,self.session
实际上是requests.Session()
返回的对象。
cred = {
'login' : 'admin@admin.com',
'password' : 'admin@123'
}
r = requests.get("http://10.118.56.55:84/bugzilla/rest.cgi/" + "login", cred)
result = r.json()
print(result)
print(result['token'])
if 'token' in result:
self.session.headers['username'] = username
self.session.headers['password'] = password
self.session.headers['token'] = result['token']
self.session.headers['id'] = result['id']
self.token = result['token']
有什么想法吗?