调试请求E

2024-05-18 08:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,利用请求访问API(Discogs)数据库。我想知道在.get命令期间,URL请求实际上在请求什么,以解决以下问题:

当我通过输入以下URL手动使用HTTP请求从discogs获取数据时:

http://api.discogs.com/database/search?type=master&year=2007&format=album&artist=Radiohead

我收到JSON格式的结果。但是,当我以以下方式使用请求时:

^{pr2}$

我没有得到任何结果(这是通过discogs客户机包装器解析结果并将其作为对象返回——解析,我没有包含在这段代码中,似乎工作得很好,我已经将问题隔离到请求中)。在

有谁能告诉我我的.get请求出了什么问题,或者告诉我如何使用请求生成它实际请求的URL(带参数),这样我就可以自己调试了吗?在


Tags: 命令comapi数据库应用程序httpurl利用
2条回答

要在发送请求之前检查它,您可以prepare它。在

req = requests.Request(url=uri, params=params, headers=headers)
prep = req.prepare()
print(prep.url)

印刷品

^{pr2}$

requests库使用urllib3库,该库又使用标准pythonlogging库来记录调试消息。以下配置将显示正在运行的确切请求:

import logging
logging.basicConfig(level=logging.DEBUG)

这会将logging模块配置为在stderr上显示调试级消息(及以上)。在

运行示例URL和参数,我看到:

^{pr2}$

所以对我来说,如果不设置额外的头,URL当然可以按预期工作。在

相关问题 更多 >