J'essaie de coder une URL en utilisant la méthode HttpUtility.UrlEncode()
, pourquoi suis-je en train de recevoir
Le type ou le nom d'espace de noms 'HttpUtility' n'existe pas dans l'espace de noms 'System.Web' (il manque une référence d'assembly?)
erreur ? J'utilise Visual C # 2008, Express Edition.
Le code que j'utilise est simpliste:
using System;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
namespace Lincr
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void cmdShorten_Click(object sender, EventArgs e)
{
WebRequest wrURL;
Stream objStream;
wrURL = WebRequest.Create("http://lin.cr?l=" + System.Web.HttpUtility.UrlEncode(txtURL.Text) + "&mode=api&full=1");
objStream = wrURL.GetResponse().GetResponseStream();
StreamReader objSReader = new StreamReader(objStream);
textBox1.Text = objSReader.ReadToEnd().ToString();
}
}
}
Vous devez inclure une référence à System.Web
. Cliquez avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions et choisissez Ajouter une référence ... . Si vous regardez _ MSDN , vous verrez qu'il est contenu dans l'assembly System.Web.dll
, pour autant que je m'en souvienne, ceci n'est pas référencé par défaut dans les nouveaux projets.
Juste au cas où quelqu'un tomberait dessus, utilise VS 2010 et ne trouve pas System.Web dans les références disponibles ...
Cliquez avec le bouton droit sur le projet et sélectionnez Propriétés. Si le cadre cible est défini sur "Client .Net Framework 4", remplacez-le par ".Net Framework 4".
Mais attention, cela fermera, rouvrira et reconstruira votre projet (même si vous avez un service Web référencé, vous devrez le réactualiser)
Pour les personnes utilisant .NET 4.0 ou version ultérieure, vous pouvez utiliser WebUtility.UrlEncode qui fonctionne avec le profil client (ne nécessite pas de référence System.Web Assembly).