Skip to content

Exception with MultiDict in POST request #114

Closed
@pepijndevos

Description

I'm trying to POST mutliple values with the same name with aiohttp, but get the following exception:

Traceback (most recent call last):
  File "bug.py", line 7, in <module>
    loop.run_until_complete(aiohttp.request('POST', "http://httpbin.org/post", data=d))
  File "/usr/lib64/python3.4/asyncio/base_events.py", line 208, in run_until_complete
    return future.result()
  File "/usr/lib64/python3.4/asyncio/futures.py", line 243, in result
    raise self._exception
  File "/usr/lib64/python3.4/asyncio/tasks.py", line 317, in _step
    result = coro.throw(exc)
  File "/home/pepijn/code/eppserver/env/lib/python3.4/site-packages/aiohttp/client.py", line 111, in request
    yield from resp.start(conn, read_until_eof)
  File "/home/pepijn/code/eppserver/env/lib/python3.4/site-packages/aiohttp/client.py", line 604, in start
    self.message = yield from httpstream.read()
  File "/home/pepijn/code/eppserver/env/lib/python3.4/site-packages/aiohttp/streams.py", line 366, in read
    return (yield from super().read())
  File "/home/pepijn/code/eppserver/env/lib/python3.4/site-packages/aiohttp/streams.py", line 341, in read
    yield from self._waiter
  File "/usr/lib64/python3.4/asyncio/futures.py", line 348, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib64/python3.4/asyncio/tasks.py", line 370, in _wakeup
    value = future.result()
  File "/usr/lib64/python3.4/asyncio/futures.py", line 243, in result
    raise self._exception
  File "/home/pepijn/code/eppserver/env/lib/python3.4/site-packages/aiohttp/client.py", line 496, in write_bytes
    request.write(chunk)
  File "/home/pepijn/code/eppserver/env/lib/python3.4/site-packages/aiohttp/protocol.py", line 666, in write
    chunk is EOF_MARKER), chunk
AssertionError: a

Example code:

import asyncio
import aiohttp
from aiohttp.multidict import MultiDict

loop = asyncio.get_event_loop()
d = MultiDict([('a', 'b'), ('a', 'c')])
loop.run_until_complete(aiohttp.request('POST', "http://httpbin.org/post", data=d))

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions