Llegar a la cadena de consulta (matriz de solicitud GET) dentro de un servicio web en .NET

StackOverflow https://stackoverflow.com/questions/298219

  •  08-07-2019
  •  | 
  •  

Pregunta

Estoy buscando encontrar una manera 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 para esta url:

http: //localhost/service.asmx? id = 2

¿Puedo acceder a la variable Get ID?

¿Fue útil?

Solución

Acabo de buscar " Solicitud " del contexto en el archivo asmx y lo vi. Pero no estoy seguro si es correcto.

this.Context.Request.QueryString["id"];

Otros consejos

HttpContext.Current.Request.QueryString [" id "]

Como preguntas, supongo que no hay HttpContext.Current.Request?

Mientras buscaba la solución del mismo problema, decidí adoptar un enfoque diferente. Mi cadena de consulta estaba llena de muchas variables y como no pude acceder a los datos de la cadena de consulta desde el 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 de JavaScript en la página .aspx

Una vez que tenía la URL en mi servicio web, el resto era bastante sencillo

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"];

Quizás no sea la forma más elegante, pero resolvió mi problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top