Пример кода вводит в заблуждение, потому что ContentType установлен на application / x-www-form-urlencoded, но фактическим содержимым является простой текст.application / x-www-form-urlencoded является строкой, подобной этой:
name1=value1&name2=value2
Функция UrlEncode используется для экранирования особых символов, таких как '&' и '=', поэтому анализатор не считает ихсинтаксис.Он принимает строку (медиа-тип text / plain) и возвращает строку (медиа-тип application / x-www-form-urlencoded).
Encoding.UTF8.GetBytes используется для преобразования строки (приложение медиа-типа/ x-www-form-urlencoded в нашем случае) в массив байтов, чего и ожидает API WebRequest.