visual thread studio net crear consumir asp asp.net web-services get

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.