Empty string cannot be passed in HttpTrigger query string · Issue #683 · Azure/azure-functions-java-worker (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Appearance settings
Description
Repro steps
- Run the following function from templates:
package com.function;
import java.util.; import com.microsoft.azure.functions.annotation.; import com.microsoft.azure.functions.*;
/**
- Azure Functions with HTTP Trigger.
/
public class HttpTriggerJava1 {
/*
This function listens at endpoint "/api/HttpTriggerJava1". Two ways to invoke it using "curl" command in bash:
- curl -d "HTTP Body" {your host}/api/HttpTriggerJava1
- curl {your host}/api/HttpTriggerJava1?name=HTTP%20Query */ @FunctionName("HttpTriggerJava1") public HttpResponseMessage run( @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.FUNCTION) HttpRequestMessage<Optional> request, final ExecutionContext context) { context.getLogger().info("Java HTTP trigger processed a request.");
// Parse query parameter String query = request.getQueryParameters().get("name"); String name = request.getBody().orElse(query);
if (name == null) { return request.createResponseBuilder(HttpStatus.BAD_REQUEST).body("Please pass a name on the query string or in the request body").build(); } else { return request.createResponseBuilder(HttpStatus.OK).body("Hello, " + name).build(); }
}
}
- Send the following request: http://localhost:7071/api/HttpTriggerJava1?name=
Expected behavior
name
should be set to an empty string and the function should return "Hello, "
Actual behavior
name
is set to null and the function returns "Please pass a name on the query string or in the request body"
Known workarounds
None
Related information
Similar issue in PowerShell worker: Azure/azure-functions-powershell-worker#895