创建URL而不执行请求

时间:2013-09-18 09:53:24

标签: python api urlencode python-requests

我目前正在使用python请求包来发出JSON请求。不幸的是,我需要查询的服务有每日最大请求限制。对,我知道,我已经缓存了已执行的请求网址,所以如果我超出这个限制,我知道第二天要在哪里继续。

r = requests.get('http://someurl.com', params=request_parameters)
log.append(r.url)

然而,为了使用这个日志,第二天我需要在实际执行请求之前在我的程序中创建请求URL,这样我就可以将它们与日志中的字符串进行匹配。否则,它会降低我的每日限额。你有谁知道怎么做?我在请求包中找不到任何合适的方法。

1 个答案:

答案 0 :(得分:26)

您可以使用PreparedRequests。

要构建URL,您可以构建自己的Request对象并进行准备:

from requests import Session, Request

s = Session()
p = Request('GET', 'http://someurl.com', params=request_parameters).prepare()
log.append(p.url)

稍后,当您准备好发送时,您可以这样做:

r = s.send(p)

文档的相关部分为here