Identify and close specific connection in AsyncClient

Abierto
#910 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
python
Área
api, backend

Línea de trabajo

El issue no menciona archivos, pruebas ni puntos de entrada del código. Empieza revisando los controles de conexión documentados de AsyncClient y el comportamiento actual del connection-pool; una investigación completada debería determinar si se admiten la identificación por conexión y el cierre selectivo, o si requieren un diseño acotado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Originally opened by @BlackCloud37 on 2025-08-25 06:04:51 in encode/httpx

Hello,

I'm trying to use httpx(in asyncio) for my web scraper program.

In my use case, to prevent my connection from banning, I usually want to limit the request on single connection, which means:

  1. Close a connection after N requests.
  2. If a connection is banned, for example, received HTTP code 429 or any invalid response.

By reading the document, I cannot find any methods that I can:

  1. Identify each request's underlying connection, so I can count requests on certain connection.
  2. To close this single connection if satisfied any condition above.

So I currently implement this in "one connection per async client" way. I limited the max_connections to 1 for my client, and each time I want to drop a connection, I throw the client away and create a new one.

As the document says, it's a bad idea to do so. So is there any way I can reuse the clients for my purpose?

Any help would be much appreciated!

Lenguaje dominante
Python
Estrellas
1.6k
Forks
103
Merge medio
1 d 19 h
PR fusionados (30 d)
25

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pydantic/httpx2

Todos los issues de pydantic/httpx2

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.