2016-04-14 169 views
2

我想在pythonanywhere上部署我的应用程序,但我无法连接到twitter。“[Errno 111]连接被拒绝”在Pythonanywhere

这里是我得到的错误: -

Traceback (most recent call last): 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1687, in wsgi_app 
response = self.full_dispatch_request() 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1360, in full_dispatch_request 
rv = self.handle_user_exception(e) 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1358, in full_dispatch_request 
rv = self.dispatch_request() 
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1344, in dispatch_request 
return self.view_functions[rule.endpoint](**req.view_args) 
File "/home/btpraasta/btp_raasta/runServer.py", line 178, in remainingRequests 
return (str)(getTrend.get_remainingRequests()) 
File "/home/btpraasta/btp_raasta/python/getTrend.py", line 20, in get_remainingRequests 
data = get_json(url) 
File "/home/btpraasta/btp_raasta/python/getTrend.py", line 10, in get_json 
connection = urllib.urlopen(url, proxies=proxies) 
File "/usr/lib/python2.7/urllib.py", line 87, in urlopen 
return opener.open(url) 
File "/usr/lib/python2.7/urllib.py", line 208, in open 
return getattr(self, name)(url) 
File "/usr/lib/python2.7/urllib.py", line 437, in open_https 
h.endheaders(data) 
File "/usr/lib/python2.7/httplib.py", line 975, in endheaders 
self._send_output(message_body) 
File "/usr/lib/python2.7/httplib.py", line 835, in _send_output 
self.send(msg) 
File "/usr/lib/python2.7/httplib.py", line 797, in send 
self.connect() 
File "/usr/lib/python2.7/httplib.py", line 1178, in connect 
self.timeout, self.source_address) 
File "/usr/lib/python2.7/socket.py", line 571, in create_connection 
raise err 
IOError: [Errno socket error] [Errno 111] Connection refused 

我试图运行的代码是这样的: -

proxies = {'http': 'http://proxy.server:3128'} 
connection = urllib.urlopen(url, proxies=proxies) 
data = connection.read() 

,我试图访问以下网址: - 'https://api.twitter.com/1.1/application/rate_limit_status.json'

我在pythonanywhere上有一个免费账户,并验证该API是白名单,我使用他们描述的代理他(http://help.pythonanywhere.com/pages/403ForbiddenError)。

+1

如果您收到“111 Connection refused”错误,那么由于某种原因它会忽略您的代理设置,或者它们不是正确的设置(尽管它们对我来说看起来非常合适)。你有没有考虑过使用'requests'而不是直接使用'urllib'?配置代理设置很麻烦,'urllib'可能很难编码。 'requests'更容易使用,它从环境变量中选择代理配置,所以你不需要自己设置它。 –

+0

嗯,代理设置中可能存在的一个问题 - 也许您实际上使用的是https,或者您正在使用的终端将您重定向到https?您可以尝试在您的字典中添加“{”https“:”http://proxy.server:3128“}”来处理该问题。 –

+1

我曾尝试使用'{“https”:“http://proxy.server:3128”}'但没有解决。使用'requests'而不是'urllib'做了这件事。您可以将其作为答案!谢谢! –

回答

2

将我的评论复制到正确的答案:让代理与urllib一起使用可能会非常棘手。 requests通常更容易使用,它从环境变量中提取代理设置。绝对推荐!

相关问题