Google API +代理+ httplib2 [英] Google API + proxy + httplib2
问题描述
我目前正在运行一个脚本,以便将来自Google Analytics的数据从 googleapiclient Phyton套餐(基于 httplib2 客户端对象)
- >我的脚本在没有任何代理的情况下完美运行。
但是我必须将其放在我的公司代理之后,所以我需要调整我的httplib2.Http()对象以嵌入代理信息。
继httplib2 doc 1 我试过:
pi = httplib2.proxy_info_from_url('http:// user:pwd @ someproxy: 80')
httplib2.Http(proxy_info = pi).request(http://www.google.com)
但它不起作用。
我总是得到一个超时错误,有或没有代理信息(所以proxy_info参数中没有考虑到)
我也在< (v1.5.6),并试图包模块 httplib2,如此处所述:
https://github.com/jcgregorio/httplib2/ issue / 205
socks.setdefaultproxy(socks.PROXY_TYPE_HTTP,proxyna,port = 80,username =' p.tisserand',password ='Telematics12')
socks.wrapmodule(httplib2)
h = httplib2.Http()
h.request(http://google.com)
但是我得到一个IndexError:(元组索引超出范围)
与此同时,
当我使用请求包,这个简单的代码完美地工作:
os.environ [HTTP_PROXY] =http:// user:pwd @ someproxy:80
req = requests.get(http://www.google.com)
问题是需要符合googleapiclient的要求并提供一个htpplib2.Http()客户端对象。
现在考虑到代理信息。它现在有效。
I'm currently running a script to pull data from Google Analytics with googleapiclient Phyton package (that is based on httplib2 client object)
--> My script works perfectly without any proxy.
But I have to put it behind my corporate proxy, so I need to adapt my httplib2.Http() object to embed proxy information.
Following httplib2 doc1 I tried:
pi = httplib2.proxy_info_from_url('http://user:pwd@someproxy:80')
httplib2.Http(proxy_info=pi).request("http://www.google.com")
But it did not work. I always get a Time out error, with or without the proxy info (so proxy_info in parameter is not taken into account)
I also downloaded socks in pysocks package (v1.5.6) and tried to "wrapmodule" httplib2 as described in here: https://github.com/jcgregorio/httplib2/issues/205
socks.setdefaultproxy(socks.PROXY_TYPE_HTTP, "proxyna", port=80, username='p.tisserand', password='Telematics12')
socks.wrapmodule(httplib2)
h = httplib2.Http()
h.request("http://google.com")
But I get a IndexError: (tuple index out of range)
In the meantime, When I use the requests package, this simple code works perfectly:
os.environ["HTTP_PROXY"] = "http://user:pwd@someproxy:80"
req = requests.get("http://www.google.com")
The problem is that need to fit with googleapiclient requirements and provide a htpplib2.Http() client object.
I decided to recode my web app in Python 2, still using the httplib2 package. Proxy info are now taken into account. It now works.
这篇关于Google API +代理+ httplib2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!