2016-04-14 18 views
2

Uygulamamı pythonanywhere üzerinde dağıtmaya çalışıyorum ancak twitter'e bağlanamıyorum. Ben çalıştırmak çalışıyorum kod şudur "[Errno 111] Bağlantı reddedildi" Pythonanywhere üzerinde

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 
: - -:

İşte

alıyorum hatadır

proxies = {'http': 'http://proxy.server:3128'} 
connection = urllib.urlopen(url, proxies=proxies) 
data = connection.read() 
Ve aşağıdaki URL'yi erişmeye çalışıyorum: - ' https://api.twitter.com/1.1/application/rate_limit_status.json'

Pythonanywhere üzerinde ücretsiz bir hesabım var ve API'nin beyaz listede olduğunu doğruladım ve açıklandığı gibi proxy kullanıyorum re (http://help.pythonanywhere.com/pages/403ForbiddenError).

+1

"111 Bağlantısı reddedildi" hatası alıyorsanız, proxy ayarlarınızı bir nedenden dolayı görmezden geliyor veya doğru ayarları yapmıyorlar (bana tamamen uygun görünüyorlar). Doğrudan 'urllib' kullanmak yerine 'request' kullanmayı düşündünüz mü? Proxy ayarlarını yapılandırmak çok kolay ve 'urllib' kodlaması zor olabilir. 'istekleri 'kullanımı daha kolaydır ve ortam değişkenlerinden proxy yapılandırmasını alır, böylece bunu kendiniz ayarlamanıza gerek yoktur. –

+0

Vekil sunucu ayarlarında olası bir sorun - belki de https kullanıyorsunuz veya vurmakta olduğunuz uç nokta sizi https'ye yönlendiriyor mu? Bunu işlemek için sözlükinize "{" https ":" http: //proxy.server: 3128 "}' eklemeyi deneyebilirsiniz. –

+1

"{" https ":" http: //proxy.server: 3128 "} 'ü kullanmayı denedim ancak bu işe yaramadı. “Urllib” yerine 'istekleri” kullanmak bir şey yaptı. Bunu bir cevap olarak yapabilirsiniz! Teşekkürler! –

cevap

2

Yorumumu düzgün bir yanıta kopyalama: urllib ile çalışmak için proxy'leri kullanmak zor olabilir. requests genel olarak kullanımı çok daha kolaydır ve proxy ayarlarını ortam değişkenlerinden çeker. Kesinlikle tavsiye!