C # Escape Plus Sign (+) в POST с использованием HttpWebRequest

У меня проблемы с отправкой данных POST, которые включают символы, такие как «+» в поле пароля,

string postData = String.Format("username={0}&password={1}", "anyname", "+13Gt2");

Я использую HttpWebRequest и веб-браузер, чтобы увидеть результаты, и когда я пытаюсьавторизоваться из моих C # WinForms, использующих HttpWebRequest для POST-данных на сайт, он говорит мне, что пароль неверный. (в исходном коде [richTexbox1] и webBrowser1). Попытка сделать это с другой моей учетной записью, которая не содержит символа «+», позволяет мне правильно войти в систему (используя массив байтов и записав его в поток)

byte[] byteArray = Encoding.ASCII.GetBytes(postData); //get the data
request.Method = "POST"; 
request.Accept = "text/html";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream newStream = request.GetRequestStream(); //open connection
newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
newStream.Close(); //this works well if user does not includes symbols

Из этогоВопрос я нашел этоHttpUtility.UrlEncode() это решение, чтобы избежать недопустимых символов, но я не могу понять, как правильно его использовать, мой вопрос, после того, как url-кодирование моих данных POST сurlEncode() как отправить данные на мойзапрос правильно?

Вот как я пытался ЧАСЫ, чтобы все заработало, но не повезло,

Первый способ

string urlEncoded = HttpUtility.UrlEncode(postData, ASCIIEncoding.ASCII);
//request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = urlEncoded.Length;
StreamWriter wr = new StreamWriter(request.GetRequestStream(),ASCIIEncoding.ASCII);
wr.Write(urlEncoded); //server returns for wrong password.
wr.Close();

Второй метод

byte[] urlEncodedArray = HttpUtility.UrlEncodeToBytes(postData,ASCIIEncoding.ASCII);
Stream newStream = request.GetRequestStream(); //open connection
newStream.Write(urlEncodedArray, 0, urlEncodedArray.Length); // Send the data.
newStream.Close();  //The server tells me the same thing..

Я думаю, что я делаю неправильно, как URL-кодированный должен быть отправлен на запрос, я действительно прошу некоторую помощь, пожалуйста, я искал через Google и не смог найти больше информации о том, как отправить закодированный URL-адрес в HttpWebRequest .. Я ценю ваше время и внимание, надеюсь, вы сможете мне помочь. Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос