У меня проблема с тем, что мой хост службы REST дважды поддерживает параметры декодирования.До сих пор я не нашел способ выключить это.Например, если вы хотите передать строку «test # test» в браузере, я должен назвать ее так: http://localhost/TestWebService/TestResponse/test%2523test вместо использования обычной кодировки UTF-8 http://localhost/TestWebService/TestResponse/test%23test
Кажется, сначала нужно декодировать% 25, чтобы получить символ%, который необходим для декодирования% 23 в #.Простой% 25 не работает и обрезает строку параметра.Есть ли способ отключить второе (нежелательное) декодирование?
private void StartServerHost ()
{
_ServiceHost = new WebServiceHost (typeof (WebService), new Uri ("http://localhost:80/TestWebService"));
// add main endpoint and open
_ServiceHost.AddServiceEndpoint (typeof (ITestWebService), new WebHttpBinding (), "");
_ServiceHost.Description.Behaviors.Find<ServiceDebugBehavior> ().HttpHelpPageEnabled = false;
_ServiceHost.Open ();
}
Мой сервисный контракт:
[ServiceContract]
public interface ITestWebService
{
#region TestResponse
[OperationContract]
[WebGet (UriTemplate = "TestResponse/{inputMessage}", ResponseFormat = WebMessageFormat.Json)]
string TestResponse (string inputMessage);