Как выйти из закодированных URL данных в POST с HttpWebRequest

Я пытаюсь отправить закодированное URL сообщение в API REST, реализованный в PHP. Данные THE POST содержат две обеспеченных пользователями строки:

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

Это отправляет Запрос HTTP на сервер, содержащий user=myusername&password=mypassword в UTF-8 как его данные POST.

Как я могу выйти из обеспеченных пользователями строк? Например, если мне назвали пользователя big&mean, как амперсанда нужно оставить так, чтобы он не портил строку запроса?

11
задан Cygon 21 June 2010 в 23:24
поделиться

1 ответ

Вы можете использовать статический класс HttpUtility в System.Web для кодирования и декодирования значений, связанных с HTML и URL.

Попробуйте HttpUtility.UrlEncode () .

17
ответ дан 3 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: