Accéder à la chaîne de requête (tableau de requêtes GET) dans un service Web dans .NET

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

  •  08-07-2019
  •  | 
  •  

Question

Je cherche un moyen d'accéder à la chaîne de requête .net contenue dans l'objet de requête ASP.NET standard dans un service Web. En d'autres termes, si je configure un service Web SOAP sur cette URL:

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

Puis-je accéder à la variable ID Get?

Était-ce utile?

La solution

Je viens de chercher " Demander " du contexte dans le fichier asmx et je l'ai vu. Mais je ne suis pas sûr que ce soit juste.

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

Autres conseils

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

Puisque vous le demandez, je suppose qu'il n'y a pas de requête HttpContext.Current.Request?

En cherchant la solution au même problème, j’ai décidé d’adopter une approche différente. Ma chaîne de requête était remplie de nombreuses variables et comme je ne pouvais pas accéder aux données de chaîne de requête du service Web et que je ne voulais pas non plus envoyer chaque variable de chaîne de requête en tant que paramètre distinct, j'ai préparé ma méthode Web pour en attendre une paramètre de chaîne supplémentaire.

Ce paramètre était window.location (URL complète de la page) dans ma fonction javascript sur la page .aspx

Une fois que j'ai eu l'URL dans mon service Web, le reste était assez direct

Uri myRef = new Uri(stringMyWindowLocationParameter);
System.Collections.Specialized.NameValueCollection mojQuery = HttpUtility.ParseQueryString(myRef.Query);

Maintenant, ma chaîne de requête est contenue dans l'objet myRef et voici comment je l'appelle

.
// Instead trying to request query string like this
string myId = HttpContext.Current.Request.QueryString["id"];

// ... I called it like this
string myId = myRef["id"];

Peut-être que ce n'est pas la manière la plus élégante mais cela a résolu mon problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top