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