La comunidad Python ya ha creado y compartido a las bibliotecas para trabajar con direcciones URL y las conexiones HTTP.
Estos son urllib y urllib2. Mientras tanto buenos en lo que hacen, que en realidad no tienen nada en común con los demás, y con urllib3 realidad.
urllib3, mientras diseñado en los principios básicos de urllib, difiere de ella a través de las características que decidió apoyar, no incluido en el módulo original
¿Cuál es nuevo en esta versión.:
- Las piscinas se pueden utilizar como gestores de contexto.
- No reutilizar los que experimentaron un SSLError.
- No fallar cuando gzip decodificación de un flujo de vacío.
- Añadir apoyo sha256 para la verificación de huellas dactilares.
- manejo fijo de valores de cabecera contienen comas.
Conexiones
¿Qué hay de nuevo en la versión 1.10.2:.
- Las piscinas se pueden utilizar como gestores de contexto
- No reutilizar los que experimentaron un SSLError.
- No fallar cuando gzip decodificación de un flujo de vacío.
- Añadir apoyo sha256 para la verificación de huellas dactilares.
- manejo fijo de valores de cabecera contienen comas.
Conexiones
¿Cuál es nuevo en la versión 1.8.3:
- Corregido error proxy-relacionados, donde estaban siendo reutilizados conexiones incorrectamente.
- Agregado socket_options parámetro de palabra clave que le permite definir la configuración setsockopt de nuevas tomas.
- Eliminado HTTPConnection.tcp_nodelay a favor de HTTPConnection.default_socket_options.
- bug TypeError fija en Python 2.6.4.
¿Cuál es nuevo en la versión 1.7.1:
- Se ha añadido soporte de tiempo de espera granular con nueva urllib3.util. Tiempo de espera de la clase.
- Fijo Python 3.4 apoyo.
¿Cuál es nuevo en la versión 1.7:
- assert_hostname Pasando = False al crear un HTTPSConnectionPool saltará verificación de nombre de host para las conexiones SSL.
- Nuevo método urllib3.response.HTTPResponse.stream (...) que actúa como un generador envuelto alrededor de .leer (...).
- IPv6 url análisis hace cumplir corchetes alrededor del nombre de host.
- Fijo condición de carrera hilo en urllib3.poolmanager.PoolManager.connection_from_host (...)
- peticiones ProxyManager ahora incluyen puerto no predeterminado en Host:. ... Cabecera
- Agregado HTTPS soporte de proxy en ProxyManager.
- Nuevo objeto RequestField se puede pasar a los campos ... = param que puede especificar cabeceras.
- Levante urllib3.exceptions.ProxyError al conectar con proxy de falla.
- Usar encabezados internacionales al publicar los nombres de archivo.
- Mejora de la compatibilidad con IPv6.
¿Qué hay de nuevo en la versión 1.4:.
- correcciones relacionadas AppEngine-Menores
- conmutada de mimetools.choose_boundary a uuid.uuid4 ().
¿Cuál es nuevo en la versión 1.2.2:
- Corregido error en el empaquetado de no envío de prueba-requisitos. txt.
¿Cuál es nuevo en la versión 1.2:
- Agregado Python 3 de soporte (probado en 3.2.2)
- Caído Python 2.5 apoyo (probado en 2.6.7, 2.7.2)
- Uso select.poll lugar de select.select para las plataformas que lo soportan.
- Uso Queue.LifoQueue lugar de Queue.Queue para reutilización conexión más agresivo. Configurable por razones imperiosas ConnectionPool.QueueCls.
- ImportError Fijo instalar en cuando el módulo SSL no está disponible. (Edición # 41)
- PoolManager Fijo redirecciona entre los regímenes (como HTTP - & # X3e; HTTPS) no completar correctamente. (Edición # 28, descubierta por Issue # 10 en v1.1)
- dummyserver Portado a utilizar tornado lugar de WebOb + eventlet. Eliminado backends pruebas dummyserver no compatibles extraños. Añadido pruebas de nivel de socket.
¿Cuál es nuevo en la versión 1.1:
- refactorizado dummyserver a su propio módulo de espacio de nombres raíz (utilizado para la prueba ).
- verificación de nombre de host añadido para VerifiedHTTPSConnection por vendoring en ssl_match_hostname de Py32.
- Fijo HTTP cross-anfitrión redirige al utilizar PoolManager.
- decode_content Fijo siendo ignorada cuando se establece a través urlopen.
- errores relacionados timeout-fijos.
¿Qué hay de nuevo en la versión 1.0.2:
- errata fija en VerifiedHTTPSConnection que lo haría sólo está presente como una error si utiliza el objeto de forma manual.
- Hecho RecentlyUsedContainer (y consecuentemente PoolManager) más seguro para subprocesos envolviendo el registro de acceso en un mutex.
- Hecho RecentlyUsedContainer más dict como (__delitem__ corregido y el comportamiento __getitem__), con pruebas. No debe afectar código urllib3 núcleo.
¿Qué hay de nuevo en la versión 1.0.1:
- Se ha corregido un error por el que la misma conexión conseguiría regresado en la piscina dos veces, causando extraños & quot; HttpConnectionPool está lleno & quot; ingrese advertencias.
¿Qué hay de nuevo en la versión 1.0:
- Agregado PoolManager con LRU expiración de conexiones (probado y documentado) .
- Agregado ProxyManager (necesita pruebas, documentos, y la confirmación de que se trabaja con servidores proxy HTTPS).
- Añadido opcional soporte parcial para leer las respuestas cuando preload_content = False. Ahora puede hacer peticiones y acaba de leer los encabezados sin cargar la respuesta Hecho decodificación opcional (por defecto sucesivamente, igual que antes).
- Añadido serie de límite explícito opcional para encode_multipart_formdata.
- métodos de petición de conveniencia están heredados de RequestMethods. Ayudantes viejos como get_url y post_url deben ser abandonados a favor de la nueva solicitud (método, url, ...).
- código refactorizado para ser aún más desacoplado, reutilizable y extensible.
- cabecera Licencia añadido a .py archivos.
- Embiggened la documentación:. Un montón de docstrings Sphinx-amigables en el código y documentos en docs / y en urllib3.readthedocs.org
- Embettered todas las cosas!
- empecé a escribir este archivo.
Requisitos
- Python 2.6 o superior
Comentarios que no se encuentran