import azure.functions def main(req: azure.functions.HttpRequest): return str(req.params)function.json
{ "scriptFile": "__init__.py", "bindings": [ { "authLevel": "anonymous", "type": "httpTrigger", "direction": "in", "name": "req", "methods": [ "get", "post" ] }, { "type": "http", "direction": "out", "name": "$return" } ] }
?paramwithvalue=foo¶mwithoutvalue
{"paramwithvalue": "foo"}
is returnedI would expect the HttpRequest.params
to contain all query params, defaulting to either a value of None
or an empty string:
{ "paramwithvalue": "foo", "paramwithoutvalue": "" }Actual behavior
The query parameter is silently discarded:
{ "paramwithvalue": "foo" }Known workarounds
The query param can be retrieved via urllib.parse.parse_qs
from the HttpRequest.url
object:
__init__.py
from urllib.parse import parse_qs, urlparse import azure.functions def main(req: azure.functions.HttpRequest): return str(parse_qs(urlparse(req.url).query, keep_blank_values=True))
This will return the full set of params:
"{'paramwithvalue': ['foo'], 'paramwithoutvalue': ['']}"
Contents of the requirements.txt file: Related information
This seems to be an underlying issue in the protobuf implementation and was already fixed in Azure/azure-functions-language-worker-protobuf#49
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4