V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
rikka
V2EX  ›  Python

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

  •  
  •   rikka · 2018-01-09 14:50:44 +08:00 · 1396 次点击
    这是一个创建于 2544 天前的主题,其中的信息可能已经有所发展或是发生改变。

    实际情况是我需要用谷歌的 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 新手,很久以前学了下然后语法啥都忘光了,刚刚捡起来,各位看看我说的对不对,还有没有办法解决我的实际情况

    hcymk2
        1
    hcymk2  
       2018-01-09 14:58:36 +08:00
    proxychains
    prolic
        2
    prolic  
       2018-01-09 15:02:36 +08:00
    rikka
        3
    rikka  
    OP
       2018-01-09 15:12:50 +08:00
    @prolic #2 我打开过这个 issue,二楼方法测试了下就报错,然后没完全耐心再去看什么,刚刚再测试,第一次报证书错误,第二次就 ok 了
    rikka
        4
    rikka  
    OP
       2018-01-09 15:15:35 +08:00
    @prolic #2 哦,不对是访问 https://www.google.com 报证书错误,但是谷歌的 api 没问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2723 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.