TwitterAPI.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:TwitterCompetitionBot 作者: BenAllenUK 项目源码 文件源码
def request(self, resource, params=None, files=None):
        """Request a Twitter REST API or Streaming API resource.

        :param resource: A valid Twitter endpoint (ex. "search/tweets")
        :param params: Dictionary with endpoint parameters or None (default)
        :param files: Dictionary with multipart-encoded file or None (default)

        :returns: TwitterResponse
        :raises: TwitterConnectionError
        """
        resource, endpoint = self._get_endpoint(resource)
        if endpoint not in ENDPOINTS:
            raise Exception('Endpoint "%s" unsupported' % endpoint)
        session = requests.Session()
        session.auth = self.auth
        session.headers = {'User-Agent': USER_AGENT}
        method, subdomain = ENDPOINTS[endpoint]
        url = self._prepare_url(subdomain, resource)
        if 'stream' in subdomain:
            session.stream = True
            timeout = STREAMING_TIMEOUT
            # always use 'delimited' for efficient stream parsing
            if not params:
                params = {}
            params['delimited'] = 'length'
            params['stall_warning'] = 'true'
        else:
            session.stream = False
            timeout = REST_TIMEOUT
        if method == 'POST':
            data = params
            params = None
        else:
            data = None
        try:
            r = session.request(
                method,
                url,
                data=data,
                params=params,
                timeout=(CONNECTION_TIMEOUT,timeout),
                files=files,
                proxies=self.proxies)
        except (ConnectionError, ProtocolError, ReadTimeout, ReadTimeoutError, 
                SSLError, ssl.SSLError, socket.error) as e:
            raise TwitterConnectionError(e)
        return TwitterResponse(r, session.stream)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号