获取403禁止发布请求

时间:2018-08-14 11:34:57

标签: python rest api python-requests

我需要通过REST API将一些二进制文件发布到服务器。我正在使用python请求库。首先,我打开用于获取Cookie的会话,然后执行POST请求,但收到403错误。

import requests
url0 = "https://someUrl/api/v1"
url1 = "https://someUrl/api/v1/Action()"
headers = {
    'X-CSRF-Token': "E8D648268586298FBB52900F85C13CDC",
    'Authorization': "Basic User:Password_InBase64"
    }
s = requests.Session()
responce = s.get(url0, headers=headers)
print("first request")
print(responce.status_code)
headers = {
    'X-CSRF-Token': "E8D648268586298FBB52900F85C13CDC",
    }
payload = "{\"BinaryFile\": \"fileInBinary\"}"
response = s.post(url1, data=payload, headers=headers )
print("second request")
print(response.status_code)
print(response.headers)

响应403错误,我看不到任何信息,为什么会发生此错误。您可以在下面看到控制台输出

first request
200
second request
403
{'X-CSRF-Token': 'Required', 'Content-Type': 'text/html;charset=utf-8',
     'Content-Language': 'en', 'Content-Length': '762', 'Date': 'Tue, 14 Aug 
    2018 10:43:13 GMT', 'Server': 'SAP', 'Strict-Transport-Security': 'max-
    age=31536000; includeSubDomains; preload'}

1 个答案:

答案 0 :(得分:0)

与API提供程序联系,确认允许哪些方法(POST,GET)。 另外,如果第二个端点(url1)上有IP限制。

我建议与任何类似应用程序的PostMan一起提出请求-当所有请求正常运行时,您始终可以看到其在代码中的外观。