2015-01-22 7 views
0

Good Evening,Python Requests Timeout Ошибка значения

Я не могу получить свой запрос https. У меня использовать SSLv3, поэтому я указать протокол с:

import requests 
from requests.adapters import HTTPAdapter 
from urllib3.poolmanager import PoolManager 
import ssl 

class MyAdapter(HTTPAdapter): 
    def init_poolmanager(self, connections, maxsize, block=False): 
     self.poolmanager = PoolManager(num_pools=connections, 
             maxsize=maxsize, 
             block=block, 
             ssl_version=ssl.PROTOCOL_SSLv3) 

username = 'username' 
password = 'password' 
email = '[email protected]' 
url = 'https://api.example.com/' 
headers = {'Accept': 'application/json', 'content-type': 'application/json'} 
params = {'emailaddress': email} 
auth = (username, password) 

s = requests.Session() 
s.mount(url, MyAdapter()) 
r = s.get(url+'customer.svc/search', params=params, auth=auth, headers=headers) 

Когда я запускаю мою просьбу ПОЛУЧИТЬ я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/requests/sessions.py", line 473, in get 
    return self.request('GET', url, **kwargs) 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/requests/sessions.py", line 461, in request 
    resp = self.send(prep, **send_kwargs) 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/requests/sessions.py", line 573, in send 
    r = adapter.send(request, **kwargs) 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/requests/adapters.py", line 370, in send 
    timeout=timeout 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/urllib3/connectionpool.py", line 517, in urlopen 
    timeout_obj = self._get_timeout(timeout) 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/urllib3/connectionpool.py", line 283, in _get_timeout 
    return Timeout.from_float(timeout) 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/urllib3/util/timeout.py", line 152, in from_float 
    return Timeout(read=timeout, connect=timeout) 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/urllib3/util/timeout.py", line 95, in __init__ 
    self._connect = self._validate_timeout(connect, 'connect') 
    File "/home/ubuntu/workspace/app/venv/lib/python2.7/site-packages/urllib3/util/timeout.py", line 125, in _validate_timeout 
    "int or float." % (name, value)) 
ValueError: Timeout value connect was Timeout(connect=None, read=None, total=None), but it must be an int or float. 

Любые идеи? Я не могу понять.

Дополнительный контекст: Я на Amazon EC2 Ubuntu Instance, запуск запросов 2.5.1 и Python 2.7.6

+0

Я выполнил этот точный код как с Python 2, так и с Python 3, и он отлично работает для меня. Похоже, нам понадобится полная трассировка и, если возможно, весь соответствующий код – Echocage

+0

Обновлено оригинальное сообщение. –

+0

Какая версия запросов и urllib3? (Возможно, разумнее использовать распространенный urllib3, чтобы избежать несовместимости, request.packages.urllib3 или somesuch). – shazow

ответ

0

Похоже, просьбы не всегда играет хорошо, когда вы приносите во внешнем распределении urllib3. То, что я в конечном итоге делал, называл запросы на внутреннем urllib3.

from requests.packages.urllib3.poolmanager import PoolManager 

вместо:

from urllib3.poolmanager import PoolManager 

Нет проблем, так как я начал делать это.

 Смежные вопросы

  • Нет связанных вопросов^_^