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
- Current User is Not authorized
recreating same Thread
- Need help with createExecution function
Hi, Need some help understanding createExecution. When requesting function execution via createExecution, the function handler arguments are incorrect and rese...
- Apple OAuth Scopes
Hi Hi, I've configured sign in with apple and this is the response i'm getting from apple once i've signed in. I cant find anywhere I set scopes. I remember se...