Urlencode пробелов

fargot31

Client
Регистрация
26.09.2017
Сообщения
72
Благодарностей
15
Баллы
8
Здравствуйте!
Проясните кто знает с urlencode,отправляю гет/пост запросы предварительно обработав в urlencode,получаеться вместо пробелов +,а сервер отдает значения где вместо пробелов %20.
Как можно закодировать коректно тело запроса,чтоб так же было %20 а не +?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 574
Благодарностей
9 187
Баллы
113
Здравствуйте!
Проясните кто знает с urlencode,отправляю гет/пост запросы предварительно обработав в urlencode,получаеться вместо пробелов +,а сервер отдает значения где вместо пробелов %20.
Как можно закодировать коректно тело запроса,чтоб так же было %20 а не +?
Попробуйте использовать C# метод кодирования:
C#:
return Uri.EscapeUriString(project.Variables["text"].Value);
61966


Либо доп. кубиком заменять + на %20
 
  • Спасибо
Реакции: fargot31

fargot31

Client
Регистрация
26.09.2017
Сообщения
72
Благодарностей
15
Баллы
8
  • Спасибо
Реакции: Sergodjan

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 525
Благодарностей
3 376
Баллы
113
Есть разные виды urlencode:
C#:
// добавить System.Web в GAC
return System.Web.Security.AntiXss.AntiXssEncoder.HtmlFormUrlEncode("text", Encoding.UTF8); // application/x-www-form-urlencoded

return System.Web.HttpUtility.UrlEncode("text", Encoding.UTF8);

return Uri.EscapeDataString("text");

return Uri.EscapeUriString("text");
C#:
Regex.Unescape
Подбирайте под требуемый результат.
 
Последнее редактирование:

fargot31

Client
Регистрация
26.09.2017
Сообщения
72
Благодарностей
15
Баллы
8
Спасибо!
Как раз мне и нужно под application/x-www-form-urlencoded.
Я и не догадывался что есть такое. :-)
 

fargot31

Client
Регистрация
26.09.2017
Сообщения
72
Благодарностей
15
Баллы
8
По первому варианту
return System.Web.Security.AntiXss.AntiXssEncoder.HtmlFormUrlEncode("text", Encoding.UTF; // application/x-www-form-urlencoded
добавил ссылку в GAC,выдает ошибку
Компиляция кода Ошибка в действии "CS0234" "Имя типа или пространства имен "AntiXss" отсутствует в пространстве имен "System.Web.Security" (пропущена ссылка на сборку?)".
В юзингах прописал System.Web.
Где ошибка подскажите?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 525
Благодарностей
3 376
Баллы
113
Компиляция кода Ошибка в действии "CS0234" "Имя типа или пространства имен "AntiXss" отсутствует в пространстве имен "System.Web.Security" (пропущена ссылка на сборку?)".
В юзингах прописал System.Web.
Где ошибка подскажите?
Добавьте в GAC System.Web 4-ой версии и x64 битности.
Переоткройте C# экшен.
 

fargot31

Client
Регистрация
26.09.2017
Сообщения
72
Благодарностей
15
Баллы
8

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)