如何发送包含"%"在REST (c# WCF)服务中

本文关键字:quot WCF 服务 何发送 包含 REST | 更新日期: 2023-09-27 18:16:38

我有这样一个函数,它返回经过正确身份验证的用户的代码

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

在我从SoapUI执行测试时运行良好。这里有一个测试

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

误差

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

如何发送包含"%"在REST (c# WCF)服务中

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

如果你真的想在url中发送"%"符号,你必须通过输入"%25"来编码它。

临时解决方案是更改POST方法,这样我就解决了。

新函数:

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