> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Comment changer PTB de httpx vers aiohttp

> Ce tutoriel vous guide pour changer httpx de python-telegram-bot vers aiohttp.

## Introduction

* Cet article vous guide pour changer `httpx` de `python-telegram-bot` vers `aiohttp`. `httpx` et `aiohttp` sont des bibliothèques utilisées pour effectuer des requêtes http.
* Avant de commencer, assurez-vous d'avoir Python et la bibliothèque python-telegram-bot installés dans votre environnement. Consultez la commande d'installation de python-telegram-bot ci-dessous.

```bash theme={null}
pip install python-telegram-bot
```

## Changement de bibliothèques

### Installation

* Tout d'abord, vous devrez installer une bibliothèque qui offre une classe pour gérer les requêtes effectuées vers Telegram. Installons `ptbcontrib`, utilisez la commande ci-dessous :

```bash theme={null}
pip install git+https://github.com/python-telegram-bot/ptbcontrib.git@main
```

### Changement de httpx vers aiohttp

* Ensuite, nous devons importer `AiohttpRequest` dans le fichier où nous instancierons notre client bot.

```python theme={null}
from ptbcontrib.aiohttp_request import AiohttpRequest
```

* Cette classe gérera toutes les requêtes vers Telegram à la place du `httpx` par défaut.
* `AiohttpRequest` sera utilisée dans l'instance du client PTB comme dans l'exemple ci-dessous :

<CodeGroup>
  ```python Bot theme={null}
  import asyncio
  import telegram
  from ptbcontrib.aiohttp_request import AiohttpRequest


  async def main():
      bot = telegram.Bot("TOKEN", request=AiohttpRequest(), get_updates_request=AiohttpRequest())
      async with bot:
          print(await bot.get_me())


  if __name__ == '__main__':
      asyncio.run(main())
  ```

  ```python ApplicationBuilder theme={null}
  import logging
  from telegram import Update
  from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler
  from ptbcontrib.aiohttp_request import AiohttpRequest

  logging.basicConfig(
      format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
      level=logging.INFO
  )

  async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
      await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")

  if __name__ == '__main__':
      application = ApplicationBuilder().request(AiohttpRequest(connection_pool_size=256)).get_updates_request(AiohttpRequest()).token('TOKEN').build()
      
      start_handler = CommandHandler('start', start)
      application.add_handler(start_handler)
      
      application.run_polling()
  ```
</CodeGroup>

## Pourquoi effectuer ce changement ?

* Changer la bibliothèque httpx pour aiohttp apporte certains avantages.

1. **Performance** : aiohttp est plus rapide que httpx.
2. **Réduction des erreurs** : httpx lèvera trop d'erreurs réseau comme ReadError et d'autres NetworkErrors en raison de ses configurations et de ses performances.

## Avez-vous aimé cet article ?

* Nous avons créé ce contenu avec le plus grand soin afin d'offrir la meilleure aide possible.
  Si cet article vous a aidé d'une quelconque manière, soutenez notre travail ! Laissez votre avis ! Cela nous aide à comprendre ce qui compte le plus pour vous.

<CardGroup cols={2}>
  <Card title="Google Reviews" icon="google" href="https://g.page/r/CYZenpQcDgTzEAI/review">
    Laissez votre avis sur Google Reviews.
  </Card>

  <Card title="Trustpilot" icon="star" href="https://www.trustpilot.com/review/squarecloud.app">
    Laissez votre avis sur Trustpilot.
  </Card>
</CardGroup>
