Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

555
Vistas
No se puede obtener el parámetro de consulta de HttpRequestData

Estoy actualizando mi código de .NET 3.0 a .NET 5.0, esto cambia bastante la sintaxis. En mi código anterior, que es una compilación de solicitud http en AZURE FUNCTIONS .NET 5.0 aislada, crea una API GET que toma parámetros.

Este es mi código anterior de .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"]; }

Simplemente no puedo encontrar una manera de usar req para obtener un parámetro de la llamada api como se hizo en .NET 3.0 string i = req.Query["i"];

En .NET 5.0 estoy usando

 using Microsoft.Azure.Functions.Worker; using Microsoft.Azure.Functions.Worker.Http;

¿Alguna pista?

over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

En la función de Azure .NET 5.0, usamos HttpRequestData en Http Trigger. La clase no contiene el parámetro Query . Para obtener más detalles, consulte aquí ingrese la descripción de la imagen aquí

Entonces, si desea obtener una cadena de consulta, puede usar el paquete Microsoft.AspNetCore.WebUtilities.QueryHelpers para implementarlo como dijo @user1672994.

Por ejemplo

 var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(req.Url.Query); var result = queryDictionary["<key name>"];
over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente puede agregar el nombre del parámetro de consulta a la lista de parámetros de la función de la siguiente manera y acceder al valor:

 public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req, ILogger log, string parameter1) { log.LogInformation("C# HTTP trigger function processed a request."); log.LogInformation($"Parameter Value: {parameter1}"); }
over 4 years ago · Santiago Trujillo Denunciar

0

Hay un paquete de sistema que da el mismo resultado. Probablemente por eso se eliminó. Solo usa:

 var query = System.Web.HttpUtility.ParseQueryString(req.Url.Query); var from = query["key"]

Esto da el mismo resultado que req.Query["array_var"];

Disfruta 😉

over 4 years ago · Santiago Trujillo Denunciar

0

Si usa Azure Functions (aislado) con .NET 5.0, puede obtenerlo de FunctionContext.BindingContext.BindingData de esta manera:

 functionContext.BindingContext .BindingData["weatherForecastId"] .ToString();
 [Function("WeatherForecastGet")] public async Task<HttpResponseData> Get([HttpTrigger(AuthorizationLevel.Function, "get", Route = "weather/{weatherForecastId:required}")] HttpRequestData req, FunctionContext executionContext) { string weatherForecastId = executionContext.BindingContext .BindingData["weatherForecastId"] .ToString(); var result = this.doSomething(weatherForecastId); var response = req.CreateResponse(HttpStatusCode.OK); await response.WriteAsJsonAsync(result); return response; }

Como se hizo la pregunta sobre HttpRequestData . El FunctionContext también está disponible en él. Entonces puede lograr los mismos resultados (con más pasos) como este:

 httpRequestData.FunctionContext .BindingContext .BindingData["weatherForecastId"] .ToString();
 [Function("WeatherForecastGet")] public async Task<HttpResponseData> Get([HttpTrigger(AuthorizationLevel.Function, "get", Route = "weather/{weatherForecastId:required}")] HttpRequestData req, FunctionContext executionContext) { string weatherForecastId = req.FunctionContext .BindingContext .BindingData["weatherForecastId"] .ToString(); // some logic }

Esto también funciona con el parámetro tanto en la consulta como en la ruta. Como puede ver, ambos parámetros en la ruta API a continuación se encuentran en BindingData

 /api/weather/12?range=today

depurador

over 4 years ago · Santiago Trujillo Denunciar

0

Esto funciona para mí. Bonito y sencillo. Hay un método para obtener los parámetros de consulta en un diccionario.

 var qp = req.GetQueryParameterDictionary(); var foobar = req["foobar"];
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda