如何在REST(C#WCF)服务中发送包含“%”的参数

时间:2015-10-07 19:11:53

标签: c# asp.net wcf soapui

我有这个函数返回正确验证的用户的代码

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

当我从SoapUI执行测试时效果很好。这是一个测试

Good

但是当我尝试使用包含字符“%”的参数时,我收到此错误

Error

你能告诉我如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

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

如果你真的想发送"%"登录网址,您必须输入"%25"。

进行编码

答案 1 :(得分:0)

临时解决方案是更改POST方法,我已经解决了。

新功能:

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