理解python请求会话参数

时间:2014-07-03 17:23:25

标签: python twitter

我正在尝试使用twitter api进行实验,我正在使用tweepy api来理解api设计...对于这个特殊的论点,请看看这个api https://dev.twitter.com/docs/api/1.1/get/users/show

示例休息请求看起来像https://api.twitter.com/1.1/users/show.json?screen_name=rsarver

所以,我不想建立一个网址字符串..

我正在深入研究https://github.com/tweepy/tweepy/blob/master/tweepy/binder.py代码..

更具体。

s = requests.Session()

然后build_parameters()函数设置参数......

在代码中,他们从不显式构建url

execute_code()中, 如果我print full_url,则只是( https://api.twitter.com/1.1/users/show.json)

我在build_parameters,self.session.params中猜测变量是否设置然后第156行是所有动作发生的地方?

resp = self.session.request(self.method, full_url,
                                                data=self.post_data, timeout=self.api.timeout,
                                                auth=auth, proxies=self.api.proxy)

但出于调试目的,我真的想知道" string url"正在执行。我如何得到#34;字符串"?或许我还没有完全理解代码。

长话短说。

我想向twitter api发出请求,但我不想" build" string ...而是使用这个sessions参数来处理它,但同时,最终我想打印正在被请求的字符串" ??

2 个答案:

答案 0 :(得分:1)

您正在寻找的完整网址位于您从请求中返回的响应对象中:

resp = self.session.request(self.method, full_url,
                                                data=self.post_data, timeout=self.api.timeout,
                                                auth=auth, proxies=self.api.proxy)
print resp.url # This is the url you want

我无法判断这对你是否真的有用。您是否仍在尝试使用tweepy获取该URL(并且不会更改tweepy)?或者您只是在阅读tweepy以了解如何与Twitter的API进行交互?

答案 1 :(得分:0)

使用简单的ctrl-F,我能够在第113和114行找到full_url的构造位置

url = self.api_root + self.path
full_url = 'https://' + self.host + url

这是你在找什么? 使用相同的方法,您可以搜索定义self.api_rootself.path的位置。