Экранирование HTML для отправки POST запросом. C#

351
07 апреля 2017, 20:30

Необходимо POST запросом отправить на сервер HTML страницу. HTML хранить специальные символы, вроде <,& и тд, из-за которых возникает ошибка 500 сервера. Код отправки запроса:

WebClient webClient = new WebClient();
postParametrs = new NameValueCollection();
postParametrs.Add("Body", body);
var response = webClient.UploadValues(url, postParametrs);

body - строка, хранящая HTML страницу, url- адрес куда отправляется запрос.

Как экранировать строку body, чтобы отправить ее POST запросом?

Answer 1

Попробуйте использовать HttpUtility.HtmlEncode(str)

WebClient webClient = new WebClient();
postParametrs = new NameValueCollection();
body = HttpUtility.HtmlEncode(body);
postParametrs.Add("Body", body);
var response = webClient.UploadValues(url, postParametrs);

Ну и если потребуется на сервере используйте HttpUtility.HtmlDecode(str)

MSDN

Answer 2

Попробуйте заменять все подобные символы на специальные символы, например

& = `&amp;`,
< = `&lt;`
READ ALSO
Обновление БД через textbox

Обновление БД через textbox

ПриветствуюРаботаю в WForms

243
Как изменить цвет фрейма?

Как изменить цвет фрейма?

Хочу изменить цвет фрейма/рамки у формыБольшая кастомизация не требуется и убирать рамку и делать свою тоже не нужно

572
Проверка подключение к MongoDB C#

Проверка подключение к MongoDB C#

Как в коде проверить подключение к серверу MongoDB из кода C#?

278
Как работать с символоми регистра в коде ASCII?

Как работать с символоми регистра в коде ASCII?

Всем привет! Я только начал изучать C# и в моём курсе обучения попалась такая вот задача, но к сожалению я не могу написать данную программу...

391