2015-10-07 32 views
0

我有这个函数返回谁是正确验证如何发送参数的REST含有“%”(C#WCF)服务

[OperationContract] 
[WebInvoke(Method = "GET", 
      UriTemplate = "67g09k2r8/{usu}/{pas}", 
      ResponseFormat = WebMessageFormat.Json)] 
int Login(String usu, String pas); 

,当我从了SoapUI作品进行测试的用户代码好 。这里测试

Good

但是当我尝试使用包含字符“%”的参数我得到这个错误

Error

你能告诉我怎么解决这个问题呢?

+1

邮编或文字在可能的情况,而不是图像。图像降低了搜索和查找重复问题的能力。 –

+1

我认为你需要使用URL编码。 %25是'%'的转义序列。因此,对于您的测试,它将是'http:// localhost:89/servicioWCF/javier/pas%25w_4' – Tim

+2

我可以安全地假定您没有使用像这样的用户名和密码。这只是一个测试,对吧?你永远不会这样做。 –

回答

0

%符号用于在URL中进行编码。它必须跟随2个表示字符代码的十六进制数字。在这里阅读更多http://www.w3schools.com/tags/ref_urlencode.asp

如果您确实想在网址中发送“%”符号,则必须输入“%25”进行编码。

+0

嗨pkmiec,尝试但我得到同样的错误,有没有其他的选择? –

+0

请发布错误detalis ..它应该是至少有点不同 – pkmiec

0

临时解决方案是改变POST方法,我解决了这个问题。

新功能:

[OperationContract] 
    [WebInvoke(Method = "POST", UriTemplate = "67g09k2r8", 
     ResponseFormat = WebMessageFormat.Json, 
     BodyStyle = WebMessageBodyStyle.Wrapped, 
     RequestFormat = WebMessageFormat.Json)] 
    int Login(String usu, String pas);