为什么我在使用 tetpyclient 发出 POST 请求时收到 403 错误?

问题描述 投票:0回答:1

尝试使用他们的 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 cisco
1个回答
1
投票

HTTP 403 是 HTTP 状态代码,表示由于某种原因禁止访问所请求的资源

您使用的凭据似乎不允许调用

/flowsearch

© www.soinside.com 2019 - 2024. All rights reserved.