2015-01-22 4 views
0

안녕하세요,Python Requests Timeout Value 오류

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) 

나는 다음과 같은 오류 얻을 내 GET 요청을 실행합니다

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. 

어떤 아이디어? 나는 그것을 이해할 수 없다.

추가 컨텍스트 : 나는 2.7.6

+0

파이썬 2와 파이썬 3 모두에서 정확한 코드를 실행했으며 완벽하게 실행됩니다. 가능하면 전체 관련 코드 – Echocage

+0

이 원본 주소로 업데이트되었습니다. –

+0

요청 및 urllib3의 버전은 무엇입니까? (비 호환 성을 피하기 위해 vendored urllib3을 사용하는 것이 현명 할 수 있습니다. requests.packages.urllib3 또는 somesuch). – shazow

답변

0

당신이 외부 urllib3 배포 가져올 때 항상 좋은 재생되지 않습니다 요청 같은데 요청 2.5.1과 파이썬을 실행, 아마존 EC2 우분투 인스턴스에 있어요. 내가 끝내기 한 것은 내부 urllib3 요청을 대신 호출하는 것이 었습니다. 대신

from requests.packages.urllib3.poolmanager import PoolManager 

:

from urllib3.poolmanager import PoolManager 

아니 문제는 내가이 일을 시작하기 때문이다.