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

490
Vistas
¿Cuál es el equivalente de ASP.NET Core MVC a Request.RequestURI?

Encontré una publicación de blog que muestra cómo "corregir" cosas familiares como HttpResponseMessage nuevamente en ASP.NET Core MVC, pero quiero saber cuál es la nueva forma nativa de hacer lo mismo que el siguiente código en un método REST Post en un Controlador:

 // POST audit/values [HttpPost] public System.Net.Http.HttpResponseMessage Post([FromBody]string value) { var NewEntity = _repository.InsertFromString(value); var msg = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Created); msg.Headers.Location = new Uri(Request.RequestUri + NewEntity.ID.ToString()); return msg; }

En un proyecto ASP.NET Core MVC, parece que no puedo obtener Request.RequestUri.

Intenté inspeccionar Solicitud y pude hacer una función como esta:

 private string UriStr(HttpRequest Request) { return Request.Scheme + "://" + Request.Host + Request.Path; // Request.Path has leading / }

Entonces podría escribir UriStr(Request) en su lugar. Pero no estoy seguro de que eso sea correcto. Siento que me estoy abriendo camino y no estoy usando esto correctamente.

Una pregunta relacionada con las versiones anteriores que no son de Core ASP.NET MVC pregunta cómo obtener la URL base del sitio.

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

0

Personalmente, uso:

 new Uri(request.GetDisplayUrl())
  • GetDisplayUrl completamente sin escape (excepto QueryString)
  • GetEncodedUrl : formulario con escape completo adecuado para usar en encabezados HTTP

Estos son métodos de extensión del siguiente espacio de nombres: Microsoft.AspNetCore.Http.Extensions

over 4 years ago · Santiago Trujillo Denunciar

0

Una forma más limpia sería usar un UriBuilder :

 private static Uri GetUri(HttpRequest request) { var builder = new UriBuilder(); builder.Scheme = request.Scheme; builder.Host = request.Host.Value; builder.Path = request.Path; builder.Query = request.QueryString.ToUriComponent(); return builder.Uri; }

(no probado, el código puede requerir algunos ajustes)

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay un código de trabajo. Esto se basa en la respuesta de @Thomas Levesque, que no funcionó bien cuando la solicitud proviene de un puerto personalizado.

 public static class HttpRequestExtensions { public static Uri ToUri(this HttpRequest request) { var hostComponents = request.Host.ToUriComponent().Split(':'); var builder = new UriBuilder { Scheme = request.Scheme, Host = hostComponents[0], Path = request.Path, Query = request.QueryString.ToUriComponent() }; if (hostComponents.Length == 2) { builder.Port = Convert.ToInt32(hostComponents[1]); } return builder.Uri; } }
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