diff --git a/CHANGES/6708.misc b/CHANGES/6708.misc new file mode 100644 index 00000000000..69fcadf6b45 --- /dev/null +++ b/CHANGES/6708.misc @@ -0,0 +1 @@ +Replace deprecated cgi module usage with email.parser. diff --git a/aiohttp/helpers.py b/aiohttp/helpers.py index 999c562a614..8e2502ac53b 100644 --- a/aiohttp/helpers.py +++ b/aiohttp/helpers.py @@ -3,7 +3,6 @@ import asyncio import base64 import binascii -import cgi import dataclasses import datetime import enum @@ -19,6 +18,7 @@ import weakref from collections import namedtuple from contextlib import suppress +from email.parser import HeaderParser from email.utils import parsedate from http.cookies import SimpleCookie from math import ceil @@ -748,7 +748,10 @@ def _parse_content_type(self, raw: str) -> None: self._content_type = "application/octet-stream" self._content_dict = {} else: - self._content_type, self._content_dict = cgi.parse_header(raw) + msg = HeaderParser().parsestr("Content-Type: " + raw) + self._content_type = msg.get_content_type() + params = msg.get_params() + self._content_dict = dict(params[1:]) # First element is content type again @property def content_type(self) -> str: