C # HttpWebRequest Сохранять пробелы кодирования с помощью «+» при отправке данных формы - PullRequest
0 голосов
/ 11 октября 2019

У меня есть небольшой код, который отправляет данные формы с помощью HttpWebRequest, проблема в том, что каждый пробел заменяется на «+». Как использовать% 20 ​​в качестве замены?

Я пробовал Uri.EscapeUriString ("hello world") и WebUtility.UrlEncode ("hello world"), но пробелы все еще заменены на% 2b, который по-прежнему '+». Я также попытался заменить его на Заменить ("+", ""), Заменить ("% 2b", "% 20"), Заменить ("+", "% 20"). Все еще безуспешно

string TXT_TO_SEND = "Hello beautiful world";

var encoding = Encoding.UTF8;
byte[] bytes = null;
NameValueCollection outgoingQueryString = HttpUtility.ParseQueryString(String.Empty);
outgoingQueryString.Add("message", TXT_TO_SEND);
string postdata = outgoingQueryString.ToString();
bytes = encoding.GetBytes(postdata);

string url = "https://my.blog/"

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.AllowAutoRedirect = true;
request.Accept = "application/json, text/plain, */*";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = bytes.Length;

using (Stream dataStream = request.GetRequestStream())
{
    dataStream.Write(bytes, 0, bytes.Length);
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        using (var response_reader = new StreamReader(response.GetResponseStream(), encoding))
        {
        }
    }
}

Как заставить приведенный выше код использовать% 20 ​​в качестве замены пробела?

...