Ошибка при отправке post-запроса HTTPS с использованием библиотеки запросов Python с прокси

#python #python-requests

#python #python-запросы

Вопрос:

Я получаю очень странную ошибку при отправке запросов HTTPS post, я нашел несколько похожих отчетов, но пока не нашел решения. Если у вас есть какие-либо предложения, мы будем очень признательны!

 Traceback (most recent call last):
  File "C:/Data/Python Projects/Experement.py", line 14, in send_request
    return requests.post(URL   '/verify', proxies=proxy).json()
  File "C:Python27libsite-packagesrequestsapi.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "C:Python27libsite-packagesrequestsapi.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:Python27libsite-packagesrequestssessions.py", line 456, in request
    resp = self.send(prep, **send_kwargs)
  File "C:Python27libsite-packagesrequestssessions.py", line 559, in send
    r = adapter.send(request, **kwargs)
  File "C:Python27libsite-packagesrequestsadapters.py", line 327, in send
    timeout=timeout
  File "C:Python27libsite-packagesrequestspackagesurllib3connectionpool.py", line 488, in urlopen
    conn = self._get_conn(timeout=pool_timeout)
  File "C:Python27libsite-packagesrequestspackagesurllib3connectionpool.py", line 222, in _get_conn
    return conn or self._new_conn()
  File "C:Python27libsite-packagesrequestspackagesurllib3connectionpool.py", line 683, in _new_conn
    return self._prepare_conn(conn)
  File "C:Python27libsite-packagesrequestspackagesurllib3connectionpool.py", line 647, in _prepare_conn
    conn.connect()
  File "C:Python27libsite-packagesrequestspackagesurllib3connection.py", line 179, in connect
    self._tunnel()
  File "c:Python27Libhttplib.py", line 759, in _tunnel
    line = response.fp.readline(_MAXLINE   1)
TypeError: readline() takes exactly 1 argument (2 given)
  

Ответ №1:

Похоже, это открытая ошибка в httplib: http://bugs.python.org/issue17849 . К проблеме прилагается короткое исправление, поэтому вы можете просто применить его к своей копии httplib.py .

Я быстро просмотрел истории фиксации connection.py в urllib3 и копии urllib3 запросов, но, похоже, не было применено никакого обходного пути.

Ответ №2:

Как вы можете видеть здесь:

 line = response.fp.readline(_MAXLINE   1)
TypeError: readline() takes exactly 1 argument (2 given)
  

функция readline запроса не принимает аргументы, отличные от ‘self’. Так что это действительно ошибка библиотеки.

В конце этого обсуждения: https://github.com/requests/requests/issues/2159 , предполагает, что это может быть неправильно сконфигурированный прокси-сервер, который запускает ошибку, также эта ошибка была исправлена на python 2.7, как вы можете видеть здесь: https://bugs.python.org/issue17849

Возможно, вы можете рассмотреть возможность обновления до python3 и библиотеки запросов.