首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qualys与Python的集成

Qualys与Python的集成
EN

Stack Overflow用户
提问于 2018-07-17 14:20:48
回答 3查看 2.9K关注 0票数 0

在过去几天试图让Qualys使用python之后,我通常会遇到类似401之类的错误,这是因为python代码示例显示它们不受支持。

由于Qualys是用curl编写的,所以我使用Curl.trillworks.com将curl转换为python。

我使用的代码是:(curl)

代码语言:javascript
复制
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -X "POST" -d
"action=create&title=My+Dynamic+Search+List&global=1&published_dat
e_within_last_days=7&patch_available=1"
"https://qualysapi.qualys.com/api/2.0/fo/qid/search_list/dynamic/"

并将其转换为python:

代码语言:javascript
复制
import requests

headers = {
    'X-Requested-With': 'Curl',
}

data = [
  ('published_date_within_last_days', '7'),
  ('patch_available', '1'),
]

response = requests.post('https://qualysapi.qualys.com/api/2.0/fo/qid/search_list/dynamic/', headers=headers, data=data, auth=('USRNAME', 'PASSWORD'))
print (response)

得到了401的回复。有什么想法或更多的澄清我应该补充吗?谢谢

更新- 12/27/2020

我已经很久没遇到这个问题了。我不知道问题是什么,但对于其他有同样问题的人,我建议将CURL语句插入到诸如失眠或邮差之类的工具中,这些工具可以将这些语句转换成任何语言。这将帮助你得到更准确的转换。

EN

回答 3

Stack Overflow用户

发布于 2020-10-08 00:05:23

我假设用户名/密码输入无效。

票数 1
EN

Stack Overflow用户

发布于 2021-12-28 10:46:29

根据Qualys API v10.16,您可以通过在执行登录后传递QualysSession cookie来尝试基于会话的身份验证。

发布登录请求:

代码语言:javascript
复制
login_api = api_url+"/api/2.0/fo/session/"

myheaders = { 'X-Requested-With': 'python'}
myparams  = { "action" : "login", "username" : api_username,  "password" : api_password} 

r_login =  requests.post(login_api, headers=myheaders, params=myparams)

print(r_login.status_code)
print(r_login.cookies.get_dict())

获得登录ok响应后,可以将cookie传递为dict in、后续的getpost

代码语言:javascript
复制
mycookies =  r_login.cookies.get_dict()
r_new =  requests.post(another_url, headers=myheaders, params=myparams, cookies=mycookies)
票数 1
EN

Stack Overflow用户

发布于 2022-03-03 09:06:42

有两个问题,您的数据是列表的,而它应该是json;第二,您应该在使用用户名和密码进行请求时使用HTTPBasicAuth。

下面是修正后的代码

代码语言:javascript
复制
import requests
from requests.auth import HTTPBasicAuth


headers = {
    'X-Requested-With': 'Curl',
}

data = {
  'published_date_within_last_days': '7',
  'patch_available': '1',
}

response = requests.post('https://qualysapi.qualys.com/api/2.0/fo/qid/search_list/dynamic/', headers=headers, data=data, auth=HTTPBasicAuth('USRNAME', 'PASSWORD'))
print (response)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51383793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档