string qs = Request.QueryString["query1"];
No hay nada más que hacer… fue muy simple.
Y por qué fue muy simple?
porque nosotros sabemos que estamos haciendo uso de un dato que la petición web ha traído.
Pero qué pasa si lo que queremos es obtener los parámetros de consulta de una petición web que no se ha hecho?
Osea, tengo la url guardada en un string, pero no he accedido a esa página, sin embargo quiero obtener la información de dicha url.
Digamos que el siguiente string es lo que quiero analizar como si fuera una petición web:
"http://www.midominio.com:8081/pagina.aspx?query1=1&query2=2"
como ven, es simplemente un string… de este string quiero extraer el puerto, el host, los parámetros de consulta, en fin.. todo lo que necesite.
Algunos dirán: “fácil pes, haz un split y obtienes cada cosa que quieres”
Si pues, eso podría funcionar, pero no es el método que aquí recomendamos. A continuación verás cómo solucionar este simple problemilla:
protected void Page_Load(object sender, EventArgs e) { string qs = Request.QueryString["query1"]; Uri url = new Uri("http://www.midominio.com:8081/pagina.aspx?query1=1&query2=2"); int port = url.Port; string host = url.Host; string queryStrings = url.Query; string query1 = HttpUtility.ParseQueryString(queryStrings).Get("query1"); string query2 = HttpUtility.ParseQueryString(queryStrings).Get("query2"); }
Les explicaré, hice uso de la clase uri, dándole como parámetro mi url a analizar.
Luego de esto es muy fácil obtener lo que deseamos. El código de arriba me permite obtener el puerto, el host, los parámetros querystring y más información.
Sólo dale una chequeada a la clase Uri.
Espero que les sea de utilidad ;)
No hay comentarios.:
Publicar un comentario