Last day I deployed a function to my selfhosted Appwrite and its working fine when I execute it from console.
It even worked fine when I execute a GET request from my Flutter Windows App.
But It is showing following error when a POST request executed from Flutter App:
File "/usr/local/server/src/server.py", line 210, in handler
return await action(request)
File "/usr/local/server/src/server.py", line 131, in action
context.req.body = request.get_json(force=True, silent=False)
File "/usr/local/server/src/function/runtime-env/lib/python3.9/site-packages/werkzeug/wrappers/request.py", line 623, in get_json
rv = self.on_json_loading_failed(e)
File "/usr/local/server/src/function/runtime-env/lib/python3.9/site-packages/flask/wrappers.py", line 131, in on_json_loading_failed
raise BadRequest()
werkzeug.exceptions.BadRequest: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.```
My Flutter Code:
```Execution result = await _functions.createExecution(
functionId: AppwriteCredentials.hookGeneratorFunctionId,
body: "{'user_message': $userInputText}", // optional
method: ExecutionMethod.pOST, // optional
headers: {"Content-Type": "application/json"}, // optional
);```
Is it possible POST is case sensitive? And are you handling POST requests in your Function?
@ideclon As I said its working properly when executed from console.
The only problem is with POST request from flutter.
Is it possible POST is case sensitive?
(I don’t know Flutter, but that doesn’t seem unreasonable)
Is it possible POST is case sensitive?
I did not get your point.
I think This issue is more related to decoding json response coming to server.
Well, you set the method as ExecutionMethod.pOST
ExecutionMethod.pOST
It is provided by appwrite SDK for Flutter as its is.
and this is not the issue
that body you have is invalid JSON. you can't use single quotes
EDITED:
@Steven
I Tried these and non of them worked:
1. body: "{'user_message': $userInputText}",
2. body: '{"user_message": $userInputText}'
Execution result = await _functions.createExecution(
functionId: AppwriteCredentials.hookGeneratorFunctionId,
body: body, // optional
method: ExecutionMethod.pOST, // optional
headers: {"Content-Type": "application/json"}, // optional
);```
Recommended threads
- Console infinite loading behind NginxPro...
Hi All, I am trying to get AppWrite to work behind NPM. I've followed the Medium guide to set proper headers, I've added my proxy configuration to NPM, and I ...
- Hi, I'm getting this error while deployi...
✗ Error • search (6937cb70002c2e9c1a97) • Fai ✗ Error: Deployment of search has failed. Check at https://cloud.appwrite.io/console/project-693...
- Timed out waiting for runtime. Error Cod...
After setting up my ML project that uses deepface and tensorflow in appwrite functions I get the `Timed out waiting for runtime. Error Code: 400. ` error. I am...