Wie man URL-kodierte Daten in POST mit HttpWebRequest @ verläs

Ich versuche, einen URL-codierten Beitrag an eine in PHP implementierte REST-API zu senden. Die POST-Daten enthalten zwei vom Benutzer bereitgestellte Zeichenfolgen:

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);
}

Dies sendet eine HTTP-Anfrage an den Server mituser=myusername&password=mypassword in UTF-8 als POST-Daten.

Wie kann ich die vom Benutzer angegebenen Zeichenfolgen umgehen? Wenn ich zum Beispiel einen Benutzer mit dem Namen @ hätbig&mean, wie soll das kaufmännische Und-Zeichen maskiert werden, damit die Anforderungszeile nicht durcheinander gebracht wird?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage