-
-
Notifications
You must be signed in to change notification settings - Fork 130
Description
Describe the bug
simple post request to the controller with content-type: text/plain error:
[ERROR] Error handling request /api/test
2024-10-24 15:32:27 Traceback (most recent call last):
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/app.py", line 227, in resolve
2024-10-24 15:32:27 return obj(*objects)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/providers/AppProvider.py", line 61, in boot
2024-10-24 15:32:27 self.app.bind("Request", Request(self.app.make("Environ")).load_app(self.app))
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/request.py", line 67, in init
2024-10-24 15:32:27 self.load_environ(environ)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/request.py", line 279, in load_environ
2024-10-24 15:32:27 environ["POST_DATA"] = self.get_post_params()
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/request.py", line 317, in get_post_params
2024-10-24 15:32:27 fields = cgi.FieldStorage(
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/cgi.py", line 477, in init
2024-10-24 15:32:27 self.read_single()
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/cgi.py", line 670, in read_single
2024-10-24 15:32:27 self.read_binary()
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/cgi.py", line 692, in read_binary
2024-10-24 15:32:27 self.file.write(data)
2024-10-24 15:32:27 TypeError: write() argument must be str, not bytes
2024-10-24 15:32:27
2024-10-24 15:32:27 The above exception was the direct cause of the following exception:
2024-10-24 15:32:27
2024-10-24 15:32:27 Traceback (most recent call last):
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/wsgi.py", line 27, in response_handler
2024-10-24 15:32:27 container.resolve(provider.boot)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/app.py", line 232, in resolve
2024-10-24 15:32:27 raise exception(str(e) + " while calling {}".format(obj)) from e
2024-10-24 15:32:27 masonite.exceptions.ContainerError: write() argument must be str, not bytes while calling <bound method AppProvider.boot of <masonite.providers.AppProvider.AppProvider object at 0xffff896e62b0>>
2024-10-24 15:32:27
2024-10-24 15:32:27 During handling of the above exception, another exception occurred:
2024-10-24 15:32:27
2024-10-24 15:32:27 Traceback (most recent call last):
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 136, in handle
2024-10-24 15:32:27 self.handle_request(listener, req, client, addr)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/gunicorn/workers/sync.py", line 179, in handle_request
2024-10-24 15:32:27 respiter = self.wsgi(environ, resp.start_response)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/whitenoise/base.py", line 86, in call
2024-10-24 15:32:27 return self.application(environ, start_response)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/wsgi.py", line 29, in response_handler
2024-10-24 15:32:27 container.make("ExceptionHandler").load_exception(e)
2024-10-24 15:32:27 File "/usr/local/lib/python3.8/site-packages/masonite/app.py", line 109, in make
2024-10-24 15:32:27 raise MissingContainerBindingNotFound(
2024-10-24 15:32:27 masonite.exceptions.MissingContainerBindingNotFound: ExceptionHandler key was not found in the container
This is the curl format for that request:
curl --location 'http://localhost:8000/api/test' \
--header 'Content-Type: text/plain' \
--header 'Cookie: csrf_token=gAAAAABnFjJj_tfb8Bw0Kxqmu0Bxsjp8qcXCDAQUYw5AFVChfu2hqGWweXUmFk4yqtET0O_SyOKK2HOxmY-ED7LEWrZuUjAccW91ZwimIyYxmL6zYQMYNM4=' \
--data 'asd asd asd asd asd asd asd asd as dasd'
Controller code:
`class TestController(Controller):
"""TestController Controller Class."""
def __init__(self, request: Request, response: Response,view:View):
"""TestController Initializer
Arguments:
request {masonite.request.Request} -- The Masonite Request class.
"""
self.request = request
self.response = response
self.view = view
def textCheck(self):
print(self.request.all())`
web.py code:
Post("/api/text", "Api.TestController@textCheck")
Expected behaviour
I except to get the posted text data posted to the url.
Steps to reproduce the bug
No response
Screenshots
No response
OS
Linux
OS version
sonama 14.3
Browser
No response
Masonite Version
4.6.1
Anything else ?
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status