diff options
| author | Rapptz <[email protected]> | 2021-03-24 08:49:12 -0400 |
|---|---|---|
| committer | Rapptz <[email protected]> | 2021-03-24 08:50:34 -0400 |
| commit | 1c8d1b028950c111fab4c654e27c288264bb82fc (patch) | |
| tree | 799e93facdf16f8bcb7dd53b18537c703bd96c42 /discord/webhook.py | |
| parent | Remove deprecated uses of about (diff) | |
| download | discord.py-1c8d1b028950c111fab4c654e27c288264bb82fc.tar.xz discord.py-1c8d1b028950c111fab4c654e27c288264bb82fc.zip | |
Recreate aiohttp.FormData objects during request retries
Fixes #6531
Diffstat (limited to 'discord/webhook.py')
| -rw-r--r-- | discord/webhook.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/discord/webhook.py b/discord/webhook.py index 9b22d42c..0b0195b2 100644 --- a/discord/webhook.py +++ b/discord/webhook.py @@ -203,13 +203,6 @@ class AsyncWebhookAdapter(WebhookAdapter): if reason: headers['X-Audit-Log-Reason'] = _uriquote(reason, safe='/ ') - if multipart: - data = aiohttp.FormData() - for key, value in multipart.items(): - if key.startswith('file'): - data.add_field(key, value[1], filename=value[0], content_type=value[2]) - else: - data.add_field(key, value) base_url = url.replace(self._request_url, '/') or '/' _id = self._webhook_id @@ -217,6 +210,14 @@ class AsyncWebhookAdapter(WebhookAdapter): for file in files: file.reset(seek=tries) + if multipart: + data = aiohttp.FormData() + for key, value in multipart.items(): + if key.startswith('file'): + data.add_field(key, value[1], filename=value[0], content_type=value[2]) + else: + data.add_field(key, value) + async with self.session.request(verb, url, headers=headers, data=data) as r: log.debug('Webhook ID %s with %s %s has returned status code %s', _id, verb, base_url, r.status) # Coerce empty strings to return None for hygiene purposes |