Comment échapper à des données encodées en URL dans POST avec HttpWebRequest
Je suis en train d'envoyer un URL-encodé post à une API REST implémenté en PHP. Le POST de données contient deux fournis par l'utilisateur chaînes:
WebRequest request = HttpWebRequest.Create(new Uri(serverUri, "rest"));
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.Headers.Add("Content-Transfer-Encoding", "binary");
//Form the url-encoded credentials we'll use to log in
StringBuilder builder = new StringBuilder();
builder.Append("user=");
builder.Append(user);
builder.Append("&password=");
builder.Append(password);
byte[] credentials = Encoding.UTF8.GetBytes(builder.ToString());
//Write the url-encoded post data into the request stream.
request.ContentLength = credentials.Length;
using (Stream requestStream = request.GetRequestStream()) {
requestStream.Write(credentials, 0, credentials.Length);
}
Cela envoie une requête HTTP au serveur contenant user=myusername&password=mypassword
en UTF-8, comme son POSTE de données.
Comment puis-je échapper à l'utilisateur fourni par les chaînes?
Par exemple, si j'avais un utilisateur nommé big&mean
, comment devrait-l'esperluette être échappé afin de ne pas gâcher la ligne de demande?
source d'informationauteur Cygon
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la statique
HttpUtility
de classe dans le Système.Web de codage et de décodage de code HTML et Url des valeurs associées.Essayer
HttpUtility.UrlEncode()
.Il semblerait que Système.Web est obsolète - le nouveau chemin pour accéder aux il est
System.Net.WebUtility.HtmlEncode