asp.net - thread - Cómo llegar a la cadena de consulta(matriz de solicitud GET) dentro de un servicio web en.NET
thread asp net (4)
Acabo de buscar "Solicitud" del contexto en el archivo asmx y lo vi. Pero no estoy seguro de si es correcto.
this.Context.Request.QueryString["id"];
Estoy buscando una forma de acceder a la cadena de consulta .net contenida en el objeto de solicitud ASP.NET estándar dentro de un servicio web. En otras palabras, si configuro un servicio web SOAP a esta url:
http: //localhost/service.asmx? id = 2
¿Puedo acceder a la variable ID Get?
HttpContext.Current.Request.QueryString ["id"]
Ya que preguntas, creo que no hay HttpContext.Current.Request?
Mientras buscaba la solución del mismo problema, decidí tomar un enfoque diferente. Mi cadena de consulta estaba llena de muchas variables y como no podía acceder a los datos de cadena de consulta del servicio web, y tampoco quería enviar cada variable de cadena de consulta como un parámetro separado, preparé mi método web para esperar uno parámetro de cadena adicional.
Ese parámetro era window.location (URL completa de la página) en mi función javascript en la página .aspx
Una vez que tuve la url en mi servicio web, el resto fue bastante directo
Uri myRef = new Uri(stringMyWindowLocationParameter);
System.Collections.Specialized.NameValueCollection mojQuery = HttpUtility.ParseQueryString(myRef.Query);
Ahora mi cadena de consulta está contenida dentro del objeto myRef y así es como lo llamo
// Instead trying to request query string like this
string myId = HttpContext.Current.Request.QueryString["id"];
// ... I called it like this
string myId = myRef["id"];
Tal vez no sea la manera más elegante, pero resolvió mi problema.