A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Azure/azure-functions-python-worker/issues/894 below:

[BUG] Empty query params are discarded · Issue #894 · Azure/azure-functions-python-worker · GitHub

Investigative information Repro steps Provide the steps required to reproduce the problem:
  1. Create simple function:
    __init__.py
    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"
            }
        ]
    }
  2. Access function URL with query params ?paramwithvalue=foo&paramwithoutvalue
  3. {"paramwithvalue": "foo"} is returned
Expected behavior

I 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.urlobject:

__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