如何使用特殊字符将参数传递给WCF Web服务?

时间:2016-03-11 11:10:43

标签: c# web-services wcf wcf-data-services wcf-binding

我正在使用WCF和C#。

我必须将参数传递给WCF Web服务,其中包含以下特殊字符: Email-ram@gmail.com和Password-Test @ 123

传递参数时,得到错误“404 Not Found”,如果传递的参数没有特殊字符,则它正在工作。

工作

localhost:35798/RestServiceImpl.svc/LoginRequest/ram/Test123/1223

不工作

localhost:35798/RestServiceImpl.svc/LoginRequest/ram@gmail.com/Test@123/1223

有可能吗?

/** Code for the same **/
[OperationContract]
    [WebInvoke( 
    Method = "POST", 
    RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json, 
    BodyStyle = WebMessageBodyStyle.WrappedRequest, 
    UriTemplate = "LoginRequest/{Email}/{Password}/{APPUID}")]

string LoginRequest(string Email, string Password, string APPUID);

public string LoginRequest(string Email, string Password, string APPUID)
{
    string strResult = "";
    if (Password.Trim() != null && Password.Trim() != "" && Email.Trim() != null && Email.Trim() != "")
        {
            strResult = " Success.";
        }
    else
        {
            strResult = "User name and password are required.";
        }
    return strResult;
}

2 个答案:

答案 0 :(得分:3)

您应该通过Html encoding发送参数的部分:

var safeEmailParam = WebUtility.HtmlEncode(yourEMailParam);

答案 1 :(得分:0)

检查 CDATA 以下链接,希望有所帮助

CDATA