Python 为什么在使用tetpyclient发出POST请求时出现403错误?

Python 为什么在使用tetpyclient发出POST请求时出现403错误?,python,python-3.x,python-2.7,api,cisco,Python,Python 3.x,Python 2.7,Api,Cisco,试图使用他们的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

试图使用他们的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文档的链接:

HTTP 403是HTTP状态代码,意味着出于某种原因禁止访问请求的资源


看起来您正在使用的凭据不允许调用
/flowsearch

,这是我最初的想法,但是对于get请求,我不也会得到400或403吗?我是HTTP客户端的新手,因此我可能是错的,如果是权限问题,可能需要将问题升级到我之上。`还需要为get请求获取400或403`-不一定get和post需要不同的凭据?@DaniMajor否。相同的凭据应该可以为您服务。好的,很好,对于get生成200而get post生成403的原因有什么解释吗?