API请求返回text/html而不是json对象

根据 @sam精彩指南,我找到了我想要请求的正确端点:

https://domain.com/admin/reports/bulk?reports[dau_by_mau][facets][]=prev_period&reports[dau_by_mau][start_date]=2022-07-27&reports[dau_by_mau][end_date]=2022-08-28&reports[dau_by_mau][limit]=50

我没有找到任何表单头,并假设不需要任何表单头。在开发者工具中进行此请求会返回一个 JSON 响应,这正是我想要的/需要的。我正在尝试使用 Python 进行 GET 请求:

url = "https://domain.com/admin/reports/bulk?reports[dau_by_mau][facets][]=prev_period&reports[dau_by_mau][start_date]=2022-07-27&reports[dau_by_mau][end_date]=2022-08-28&reports[dau_by_mau][limit]=50.json"
headers = CaseInsensitiveDict()
headers["Content-Type"] = "multipart/form-data"
headers["Content-Type"] = "application/json"
headers["Api-Key"] = SECRET.API
headers["Api-Username"] = "system"

resp = requests.get(url, headers=headers)

print(resp.status_code)
print(resp.headers)

我确实得到了一个 200,但它返回的是 'Content-Type': 'text/html,而不是我想要的 JSON。而且我甚至不确定它返回的文本是否是我想要的数据的文本版本。

这也没有帮助。

那么我哪里做错了?

1 个赞

您有一个重复的标头:

Content-Type 是关于您发送的内容,而 Accept 是关于您想要返回的内容。
所以您需要将其更改为

headers["Content-Type"] = "multipart/form-data"
headers["Accept"] = "application/json"
5 个赞

抱歉,这是一个无关的遗留项。第二个标题出现问题。

这个确实有效。谢谢!

2 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.