I'm upgrading my code from .NET 3.0 to .NET 5.0, this changes the sintaxis quite a bit. In my previous code, which is a http request build in AZURE FUNCTIONS .NET 5.0 isolate, builds an GET api that takes parameters.
This is my previous code from .NET 3.0
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
byte[] RSA_Key_to_Correct = new byte[0x80];
string array_var = req.Query["array_var"];
string i = req.Query["i"];
string incrementing_value = req.Query["incrementing_value"];
}
I just cant find a way to use req to grab a parameter from the api call like it was done on .NET 3.0 string i = req.Query["i"];
In .NET 5.0 im using
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
Any hint?
In Azure function .NET 5.0, we use the HttpRequestData
in Http Trigger. The class does not contain Query
parameter. For more details, please refer to here
So if you want to get query string, you can use the package Microsoft.AspNetCore.WebUtilities.QueryHelpers
to implement it as @user1672994 said.
For example
var queryDictionary =
Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(req.Url.Query);
var result = queryDictionary["<key name>"];
There is a system package that gives the same result. That is probably why it was removed. Just use:
var query = System.Web.HttpUtility.ParseQueryString(req.Url.Query);
var from = query["key"]
This gives the same result as req.Query["array_var"];
Enjoy 😉
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With