0

WCF で Rest サービスを作成しています。GetUserDetails3 つのパラメーターを受け入れるメソッドがあります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 に答える