FMC API POST 请求不起作用。 "description": '无效请求

时间:2021-03-30 20:53:26

标签: api post postman fmc

我正在尝试从 Firepower 下载对象配置,更改对象的名称并将其作为新对象发布回来。为此,我使用 GET 方法并成功获取了对象数据。 之后,我将删除其中的“链接”信息并尝试使用新的“名称”将其发回:

 import requests
 import csv
 import json
 from requests.auth import HTTPBasicAuth
 from getpass import getpass

 import urllib3
 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

 address = "###"
 username = "###"
 password = "##"

 api_uri = "/api/fmc_platform/v1/auth/generatetoken"
 url = "https://" + address + api_uri

 response = requests.request("POST", url, verify=False, auth=HTTPBasicAuth(username, password))


 accesstoken = response.headers["X-auth-access-token"]
 refreshtoken = response.headers["X-auth-refresh-token"]
 DOMAIN_UUID = response.headers["DOMAIN_UUID"]

 print("Access token: "+ accesstoken)
 print("Refresh token: "+ refreshtoken)
 print("Domain UUID: "+ DOMAIN_UUID)


def get_all_objects(address, accesstoken):
    api_uri = "/api/fmc_config/v1/domain/"+ DOMAIN_UUID +"/object/networks"
    url = "https://" + address + api_uri
    headers = {
        "X-auth-access-token": accesstoken
    }
    response = requests.get(url, verify=False, headers=headers)
    return json.loads(response.text)


def get_specific_object(address, accesstoken):
    object_id = input("Please input object ID: ")
    api_uri = "/api/fmc_config/v1/domain/"+ DOMAIN_UUID +"/object/networks/" + object_id
    url = "https://" + address + api_uri
    headers = {
        "X-auth-access-token": accesstoken
    }
    response = requests.get(url, verify=False, headers=headers)
    return json.loads(response.text)

GET_result = get_specific_object(address, accesstoken)




def add_specific_object(POST_data):
    del POST_data['links']
    POST_data["name"] = "NEW_API_ADDED"
    api_uri = "/api/fmc_config/v1/domain/"+ DOMAIN_UUID +"/object/networks/"
    url = "https://" + address + api_uri
    headers = {
        "X-auth-access-token": accesstoken
    }
    print(POST_data)

    response = requests.post(url, headers=headers, verify=False, data=json.dumps(POST_data))

    print(json.loads(response.text))
    return 


get_all_objects(address, accesstoken)
add_specific_object(GET_result)

当我在 Postman 使用相同的 JSON“POST_data”时,它将该对象发布到 Firepower 没有问题。 但是当我从 Python 做这件事时,它给了我:

{'error': {'category': 'FRAMEWORK', 'messages': [{'description': 'Invalid Request'}], 'severity': 
'ERROR'}}

请帮忙。看起来我的输入数据在 Post 之前不正确。但我不确定到底是什么。

谢谢,

0 个答案:

没有答案