对POST请求的响应具有文本/html内容类型,而我需要应用程序/json,而Chrome开发工具显示json响应.&l



我使用Python的requests模块向某个网站发出POST请求。我的目标是获得JSON格式的响应。
问题:响应的Content-Type头是text/html。试图将其解析为JSON会引发错误。打印响应的内容给了我一堆我不想要的复杂的html。
然而,在Chrome开发工具>网络,我可以看到相同的POST请求的响应作为一个JSON对象。此外,Dev Tools上响应的Content-Type头明确表示application/json.
我的目标是在我的Python脚本中强制响应的Content-Typeapplication/json。我尝试了以下操作:

  • 手动设置标题:
response.headers['Content-Type'] = 'application/json; charset=utf-8'
response.json()

没有运气。

  • 请求中设置Content-TypeAcceptapplication/json。这没有多大意义,但值得一试。
  • 发送我的请求数据作为multipart/form-data,因为它在开发工具中说。没有运气。

这几乎与这个问题完全相同:响应内容类型文本/html而预期应用程序/json,但那是在一个更具体的上下文中,解决方案不适用于我。

谢谢!

我和你有同样的问题,经过10个小时的研究,我用下面的代码解决了我的问题

import requests
import json
url = ""
headers = {"content-type": "application/json; charset=UTF-8"}
payload = {}
r = requests.post(url, headers=headers, data=json.dumps(payload))

希望,这将帮助你

最新更新