
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
- Dockerizing Appwrite Console Yields Page...
I have this Docker Compose file: ``` services: # Band9Buddy app band9buddy: build: context: . dockerfile: Dockerfile.dev develop: ...
- Upgrading Appwrite 1.7.4 → 1.8.x: What H...
I'm currently running a self-hosted Appwrite v1.7.4 instance that still uses the old Collections/Documents database model. I noticed that starting from v1.8.x,...
- Domain not working
My domain [fork-fable.appwrite.network](https://fork-fable.appwrite.network/) returns a 500 even after deleting and redeploying. Other domains added in domains ...
