UrlEncode par le biais d'une application console?
Normalement, je voudrais juste utiliser:
HttpContext.Current.Server.UrlEncode("url");
Mais puisque c'est une application console, HttpContext.Current
est toujours null
.
Est-il une autre méthode qui fait la même chose que je pourrais utiliser?
Vous devez vous connecter pour publier un commentaire.
Essayer cette!
Ou
Pas besoin de Système de référence.Web.
Edit: Veuillez voir un autre AFIN de répondre à pour en savoir plus...
Uri
classe est enSystem
.HttpUtility.UrlEncode
tandis que @KevinUK demandé pour l'encodage.Je ne suis pas un .NET homme, mais, vous pouvez pas utiliser:
Qui est décrit ici:
HttpUtility.UrlEncode Méthode (String) sur MSDN
Le code de Ian Hopkins fait le truc pour moi, sans avoir à ajouter une référence à System.Web. Ici, c'est un port de C# pour ceux qui ne sont pas à l'aide de VB.NET:
Vous aurez envie d'utiliser
Assurez-vous que vous avez du système.web comme l'une des références dans votre projet. Je ne pense pas qu'il est inclus comme une référence par défaut dans les applications de console.
Essayez d'utiliser la fonction UrlEncode méthode dans le HttpUtility classe.
J'ai rencontré ce problème moi-même, et plutôt que d'ajouter le Système.Web de l'assemblée pour mon projet, j'ai écrit une classe pour l'encodage/décodage de l'Url (c'est assez simple, et j'ai fait quelques tests, mais pas beaucoup). J'ai inclus le code source ci-dessous. S'il vous plaît: laisser le commentaire en haut si vous réutilisez ce, ne me blâmez pas si ça casse, apprendre le code.
Utilisation
WebUtility.UrlEncode(string)
deSystem.Net
espace de nomsKibbee offre la vraie réponse. Oui, HttpUtility.UrlEncode est la bonne méthode à utiliser, mais il ne sera pas disponible par défaut pour une application console. Vous doit ajouter une référence à System.Web. Pour ce faire,
MAINTENANT, vous pouvez utiliser la fonction UrlEncode méthode. Vous aurez encore envie d'ajouter,
en utilisant le Système.Web
en haut de votre console de l'application ou de l'utilisation de l'espace de nom complet lors de l'appel de la méthode,
Système.Web.HttpUtility.UrlEncode(someString)
HttpUtility.UrlEncode("url") dans le Système.Web.
utiliser la statique HttpUtility.UrlEncode méthode.
Meilleure chose à faire est d'Ajouter une Référence à System.web..dll
et l'utilisation
var EncodedUrl=Système.Web.HttpUtility.UrlEncode("texte url");
Vous pouvez trouver le Fichier à System.web.dll
Uri.EscapeUriString ne doit pas être utilisé pour échapper à une chaîne pour être passé dans l'URL il n'a pas d'encoder tous les caractères que vous pourriez vous attendre. Le " + " en est un bon exemple qui n'est pas échappé. Cela devient alors converti en espace dans l'URL car c'est ce que signifie dans un simple URI. Évidemment, cela cause de graves problèmes à la minute que vous essayez et de passer à quelque chose comme une chaîne encodée en base 64 dans l'URL et espaces apparaissent sur votre chaîne à l'extrémité de réception.
Vous pouvez utiliser HttpUtility.UrlEncode et ajouter les références nécessaires à votre projet (et si vous êtes en communication avec une application web puis je ne vois aucune raison pourquoi vous ne devriez pas le faire).
Vous pouvez également utiliser l'Uri.EscapeDataString plus de Uri.EscapeUriString comme très bien expliqué ici: https://stackoverflow.com/a/34189188/7391