【发布时间】:2020-09-08 12:30:15
【问题描述】:
尝试使用他们的 tetpyclient 在 Cisco 的 Tetration API 中发出 POST 请求。使用 get 请求时收到 200 响应,但在使用 json 过滤器发出 POST 请求以查询流时收到 403。是我的 json 数据语法不正确还是我的 python 中有语法错误?
from tetpyclient import RestClient
import urllib3
import json
import requests
from datetime import datetime
from flask import *
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
API_ENDPOINT = "https://"
restclient = RestClient(API_ENDPOINT, credentials_file = 'path/to/credentials.json', verify = False)
get = restclient.get("/flowsearch/metrics")
print (get.status_code) ##to test if api can be reached
req_payload = {"t0": "2020-08-01T09:00:00-0700",
"t1": "2020-08-01T10:00:00-0700",
"scopeName": "Default",
"limit": 10,
"filter": {
"type": "and",
"filters": [
{"type": "eq", "field": "src_address","value": "00.000.0.000" },
{"type": "eq", "field": "dst_address","value": "000.000.00.00" }
]
}
}
resp = restclient.post('/flowsearch', json_body=json.dumps(req_payload))
print(resp.content)
print (resp.status_code)
if resp.status_code == 200:
parsed_resp = json.loads(resp.content)
print (json.dumps(parsed_resp, indent=4, sort_keys=True))
感谢所有反馈! 这是 tetration api 文档的链接:https://www.cisco.com/c/en/us/td/docs/security/workload_security/tetration-analytics/sw/config/b_Tetration_OpenAPI/m_flow-search.html
【问题讨论】:
标签: python python-3.x python-2.7 api cisco