使用REST API在Bugzilla 5.x中创建错误

时间:2018-06-11 11:55:22

标签: python-3.x rest bugzilla

正如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']

有什么想法吗?

0 个答案:

没有答案