httplib2 还没实现代理功能,凉了?

2018-01-09 14:50:44 +08:00
 rikka

实际情况是我需要用谷歌的 api,就是 googleapiclient 这个包,那么还得代理下才能用,看了源码需要传一个设置好代理的 http 实例过去,但是死活就不行

测试了下

import httplib2
http = httplib2.Http(proxy_info=httplib2.ProxyInfo( httplib2.socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 1080),timeout=10)
resp, content = http.request('https://www.google.com', 'GET')
print(resp)

根本没走代理,谷歌无果,心灰意冷,翻翻源码,才发现

class HTTPSConnectionWithTimeout( http.client.HTTPSConnection):
    """
    This class allows communication via SSL.

    All timeouts are in seconds. If None is passed for timeout then
    Python's default timeout for sockets will be used. See for example
    the docs of socket.setdefaulttimeout():
    http://docs.python.org/library/socket.html#socket.setdefaulttimeout
    """

    def __init__(self, host, port=None, key_file=None, cert_file=None,
                 timeout=None, proxy_info=None,
                 ca_certs=None, disable_ssl_certificate_validation=False):
        # TODO: implement proxy_info
        self.proxy_info = proxy_info
        context = None

TODO: implement proxy_info,凉了?

py 新手,很久以前学了下然后语法啥都忘光了,刚刚捡起来,各位看看我说的对不对,还有没有办法解决我的实际情况

1397 次点击
所在节点    Python
4 条回复
hcymk2
2018-01-09 14:58:36 +08:00
proxychains
prolic
2018-01-09 15:02:36 +08:00
rikka
2018-01-09 15:12:50 +08:00
@prolic #2 我打开过这个 issue,二楼方法测试了下就报错,然后没完全耐心再去看什么,刚刚再测试,第一次报证书错误,第二次就 ok 了
rikka
2018-01-09 15:15:35 +08:00
@prolic #2 哦,不对是访问 https://www.google.com 报证书错误,但是谷歌的 api 没问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/421371

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX