Obtenir une chaîne de requête complète dans C # ASP.NET

En tant que programmeur PHP, j’ai l’habitude d’utiliser $ _GET pour récupérer la chaîne de requête HTTP … et si j’ai besoin de toute la chaîne, il y a beaucoup de façons de le faire.

En ASP, cependant, je n’arrive pas à obtenir la requête.

Voici le code pour news.aspx (intégré dans du HTML):

 

Je vais chercher la sortie d’un script PHP à partir d’un serveur distant, et cela fonctionne parfaitement sans le Request.Queryssortingng.

Le problème est que j’essaie d’obtenir la chaîne de requête complète sur la première ligne: Request.Queryssortingng. Je reçois une erreur ” La référence d’object n’est pas définie sur une instance d’object “, ce qui signifie que Request.Queryssortingng n’existe pas.

Une idée du problème ici? Comment puis-je obtenir cette chaîne de requête lorsque index.aspx est appelé comme http://test.com/news.aspx?id=2 mon script récupère http://www.example.com/rendernews.php?id=2

Essayez Request.Url.Query si vous souhaitez que la chaîne de requête brute soit une chaîne.

Cela devrait bien fonctionner pour vous.

Ecrivez ce code dans l’événement Page_Load de la page.

 ssortingng ID = Request.QuerySsortingng["id"].ToSsortingng(); Response.Redirect("http://www.example.com/rendernews.php?id=" + ID); 

Request.QuerySsortingng vous renvoie une collection de paires clé / valeur représentant la chaîne de requête. Pas une chaîne. Ne pensez pas que cela provoquerait une erreur de référence d’object. La raison pour laquelle vous l’obtenez est que, comme l’a souligné Mauro dans les commentaires. C’est QuerySsortingng et non Queryssortingng.

Essayer:

 Request.QuerySsortingng.ToSsortingng(); 

ou

 <% string URL = Request.Url.AbsoluteUri System.Net.WebClient wc = new System.Net.WebClient(); string data = wc.DownloadString(URL); Response.Output.Write(data); %> 

Identique à votre code, mais Request.Url.AbsoluteUri renverra le chemin complet, y compris la chaîne de requête.

Utilisez simplement Request.QuerySsortingng.ToSsortingng() pour obtenir la chaîne de requête complète, comme ceci:

 ssortingng URL = "http://www.example.com/rendernews.php?"+Request.Queryssortingng.ToSsortingng(); 

J’ai testé votre exemple et, bien que Request.QuerySsortingng ne soit pas convertible en chaîne ni implicite ni explicite, la méthode .ToSsortingng () renvoie le résultat correct.

Plus encore, lors de la concaténation avec une chaîne utilisant l’opérateur “+” comme dans votre exemple, il retournera également le résultat correct (car cela se comporte comme si .ToSsortingng () était appelé).

En tant que tel, il n’y a rien de mal avec votre code, et je suggère que votre problème soit dû à une faute de frappe dans votre code écrit “Queryssortingng” au lieu de “QuerySsortingng”.

Et cela a plus de sens avec votre message d’erreur car si le problème est que QuerySsortingng est une collection et non une chaîne, il devrait donner un autre message d’erreur.

Il y a un instant, j’ai rencontré le même problème. et je le résoudre de la manière suivante.

 Response.Redirect("../index.aspx?Name="+this.textName.Text+"&LastName="+this.textlName.Text); 

en référence à la présente