如何取消转义URL中的特殊字符?

时间:2019-08-01 13:34:24

标签: c# .net wcf

我有一个Wcf服务,该服务接受格式为'%% 032000007777?'的参数。在.net framework 4.0中,我们曾经对其进行过一次编码,并且能够通过在配置文件中添加以下元素来发送数据。

<system.net>
<settings>
  <httpListener unescapeRequestUrl="false"/>
</settings>
 </system.net>

现在,我们已将服务迁移到3.5框架,并且HttpListener元素在此处不可用。我们还有什么可以用来完成这项任务的?

我尝试过的- 我在配置文件中添加了元素,以检查它是否可以工作

    <uri>
  <iriParsing enabled="true" />
  </uri>

也尝试添加

    <uri>
    <schemeSettings>
    <add name="http" 
    genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
    </schemeSettings>
     </uri>

这两种方法都不起作用,所以我不确定下一步该怎么做。

这是我的api

    [OperationContract]
    [WebInvoke(UriTemplate = "/players/{id}/pin/validate", ResponseFormat = WebMessageFormat.Json, Method = "POST", BodyStyle = WebMessageBodyStyle.Bare,RequestFormat = WebMessageFormat.Json)]
    PlayerResponse ValidatePlayerPin(string id, ValidatePlayerPinRequest pinRequest);

当我对参数进行两次编码时,我可以访问我的API并以原始格式获取数据,但是我需要它与单次编码一起工作吗?我可能会缺少任何方法吗?

0 个答案:

没有答案