> ## 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.

# Come cambiare PTB da httpx ad aiohttp

> Questo tutorial ti guida su come cambiare httpx in aiohttp per python-telegram-bot.

## Introduzione

* Questo articolo ti guida nel cambiare `httpx` di `python-telegram-bot` in `aiohttp`. `httpx` e `aiohttp` sono librerie utilizzate per effettuare richieste http.
* Prima di iniziare, assicurati di avere Python e la libreria python-telegram-bot installati nel tuo ambiente. Controlla il comando di installazione di python-telegram-bot qui sotto.

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

## Cambiare le librerie

### Installazione

* Per prima cosa, dovrai installare una libreria che offre una classe per gestire le richieste effettuate a Telegram. Installiamo `ptbcontrib`, usa il comando qui sotto:

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

### Cambiare httpx in aiohttp

* Successivamente, dobbiamo importare `AiohttpRequest` nel file in cui istanzieremo il client del nostro bot.

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

* Questa classe gestirà tutte le richieste a telegram al posto del `httpx` predefinito.
* `AiohttpRequest` verrà utilizzato nell'istanza del client PTB come nell'esempio qui sotto:

<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>

## Perché fare questo cambiamento?

* Cambiare la libreria httpx in aiohttp porta con sé alcuni vantaggi.

1. **Prestazioni**: aiohttp è più veloce di httpx.
2. **Riduzione degli errori**: httpx solleva troppi errori di rete come ReadError e altri NetworkError a causa delle sue configurazioni e prestazioni.

## Ti è piaciuto questo articolo?

* Abbiamo creato questo contenuto con grande cura per offrirti il miglior aiuto possibile.
  Se questo articolo ti è stato utile in qualche modo, sostieni il nostro lavoro! Lascia la tua recensione! ci aiuta a capire cosa conta di più per te.

<CardGroup cols={2}>
  <Card title="Google Reviews" icon="google" href="https://g.page/r/CYZenpQcDgTzEAI/review">
    Lascia la tua recensione su Google Reviews.
  </Card>

  <Card title="Trustpilot" icon="star" href="https://www.trustpilot.com/review/squarecloud.app">
    Lascia la tua recensione su Trustpilot.
  </Card>
</CardGroup>
