0

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

但我无法解析这个编码的 url:

localhost: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);

    }
}

任何帮助是极大的赞赏。

4

1 回答 1

1

显然,它确实:

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

这里

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

于 2013-10-31T06:25:51.390 回答