如何在python中获取请求库的确切URL

时间:2016-12-13 09:51:43

标签: python python-requests

我正在使用python的请求库并发出这样的请求

r = requests.get(solrShard1, params = solrParams)

现在我想获取请求库正在创建的确切URL。我尝试过使用

req = requests.Request('POST',solrShard1, params = solrParams)
prepared = req.prepare()
print >>sys.stderr, "REQUEST START"
print >>sys.stderr, req.url
print >>sys.stderr, "REQUEST END"

但它只打印网址而不是确切的网址以及参数和所有内容。我怎样才能获得确切的网址

2 个答案:

答案 0 :(得分:0)

您正在显示来自请求对象的网址,而不是已准备好的对象。

prepare方法的调用不会改变对象本身,而是返回准备好的对象,您已经将其分配给prepared变量,但是您没有在任何地方使用它。

只需更改以下代码即可:

print >>sys.stderr, "REQUEST START"
print >>sys.stderr, prepared.url
print >>sys.stderr, "REQUEST END"

我尝试了下面的代码,它对我来说很好用:

req = requests.Request('POST', 'http://google.com', params={'param1': 10})
prep = req.prepare()
print(prep.url)

>> 'http://google.com/?param1=10'

答案 1 :(得分:0)

您正在发送POST请求。在POST请求中,您在URL中没有任何参数,但在请求正文中。

尝试使用以下方式打印请求正文:

print(prepared.data)