127 votes

Obtenir les paramètres de requête individuelle de Uri

J'ai une chaîne uri comme: http://example.com/file?a=1&b=2&c=string%20param

Y a t il une fonction qui permettrait de convertir le paramètre de requête à la chaîne dans un dictionnaire de la même manière que ASP.NET Contexte.Demande t-il.

Je suis en train d'écrire une application console et pas un web-service, de sorte que il n'y a pas de Contexte.Demande d'analyser l'URL pour moi.

Je sais qu'il est assez facile de casser la chaîne de requête de moi-même, mais je préfère utiliser une fonction FCL est si existe.

143voto

Timothy Shields Points 17970

Utiliser ceci :

Ce code de Tejs n’est pas la manière de « bonne » pour obtenir la chaîne de requête de l’URI :

119voto

Tejs Points 23834

Vous pouvez utiliser :

MSDN

25voto

sharpcloud Points 4141

Cela devrait fonctionner:

string url = "http://example.com/file?a=1&b=2&c=string%20param";
string querystring = url.Substring(url.IndexOf('?'));
System.Collections.Specialized.NameValueCollection parameters = 
   System.Web.HttpUtility.ParseQueryString(querystring);

Selon MSDN. Ce n'est pas exactement collectiontype vous êtes à la recherche pour, mais néanmoins utile.

Edit: Apparemment, si vous fournissez l'url complète d' ParseQueryString il va ajouter 'http://example.com/file?a" comme la première clé de la collection. Puisque c'est probablement pas ce que vous voulez, j'ai ajouté de la sous-chaîne pour obtenir uniquement la partie de l'url.

15voto

Ross Dargan Points 2967

Je devais faire ça pour une application windows modernes. J’ai utilisé le texte suivant :

EDIT : C’est mis à jour selon la suggestion de Maya

13voto

David Lively Points 16026

Jetez un oeil sur HttpUtility.ParseQueryString() il vous donnerons un `` au lieu d’un dictionnaire, mais faire quand même ce dont vous avez besoin.

L’autre option consiste à utiliser `` .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X