解码编码的URL

时间:2013-10-30 13:59:13

标签: c# asp.net json wcf rest

我在WCF中创建Rest服务。我有一个方法GetUserDetails,它接受​​三个参数GetUserDetails/?username={username}&mobileno={mobileno}&imeino={imeino}

但是我无法解析这个编码的网址:

  

本地主机:9005 / Service.svc / GetUserDetails request_header = NULL&安培; request_body =%7B%22mobileNo%22%3A%229827098270%22%2C%22username%22%3A%22member%22%2C%22imeiNo%22%? 3A%22111111%22%7D

包含带有json格式参数的Get Request。以下是我的代码详情:

[ServiceContract]

public interface IService
{

 [OperationContract]

    [FaultContract(typeof(string))]
    [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json,  ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "GetUserDetails/?username={username}&mobileno={mobileno}&imeino={imeino}")]
    UserModel GetUserDetails(string username, string mobileno, string imeino);

 }

public class Service : IService
{

  public UserModel GetUserDetails(string username, string mobileno, string imeino)
    {

        try
        {
            con = new SqlConnection(strcon);
            if (con.State == ConnectionState.Open)
            {
                con.Close();
            }

            SqlCommand cmd = new SqlCommand("SP_AND_userprofiledata",con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@username", username);
            cmd.Parameters.AddWithValue("@mobileNo", mobileno);
            cmd.Parameters.AddWithValue("@imeiNo", imeino);
            da = new SqlDataAdapter();
            da.SelectCommand = cmd;
            ds = new DataSet();
            da.Fill(ds);

    }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

显然,确实如此:

“对于RESTful服务,WCF提供名为System.ServiceModel.WebHttpBinding的绑定。 此绑定包括知道如何使用HTTP和HTTPS传输读取和写入信息的部分,以及编码适用于HTTP的消息。“

来自here

请参阅:http://www.stackoverflow.com/questions/1187744/does-wcf-automatically-url-encode-decode-streams/1507218#1507218