2016-01-21 12 views
0

Я делаю запрос к веб-службе REST. Веб-сервис принимает параметр даты в следующем формате:WebUtility.HtmlEncode не конвертирует `:`

?date=0001-01-01T00:00:00Z 

веб-сервис принимает только если двоеточие в параметре преобразуются в% 3A следующим

?date=0001-01-01T00%3A00%3A00Z 

Я считаю, что я мог бы использовать WebUtility.HtmlEncode() для этого преобразования. Но после использования двоеточия не анализируются на% 3A.

Я что-то упустил? Как я могу получить параметр в следующем формате?

?date=0001-01-01T00%3A00%3A00Z 

Я уже потерял много времени для этой простой вещи, я не хочу, чтобы написать код для выполнения только это ... Там должен быть какой-то .NET библиотека, которая уже может сделать это.

ответ

2

: действительный символ в HTML, поэтому HtmlEncode не трогает его. Вы имеете дело с URL-адресом, поэтому вам нужно UrlEncode:

var url = WebUtility.UrlEncode(":"); //%3A 
+0

Я вручную изменил его, спасибо. Проблема в том, что когда я использую UrlEncode(), он преобразует все специальные символы. И новый объект Uri() .NET не принимает его ни – Ozkan