WCF宁静的Web服务与后期方法

时间:2018-06-27 10:22:59

标签: c# asp.net json

我正在使用vs2017在asp.net上进行开发;我正在使用Web服务。 我对wcf rest网络服务有问题, 我使用下面的代码通过GET方法连接到Web服务。

 [OperationContract]
    [WebInvoke(Method = "GET",
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "json/{id}")]
    string JSONData(string id);

现在我想将方法​​更改为“ POST”。如何使用这种方法发送参数?

在客户端

<form id="form1" action="RestServiceWareHouse.svc/jsonUserLogin"  method="post">
    <div>
        <input id="id" name="id" type="text" />
        <input id="pass" name="pass" type="text" />
        <input id="Submit1" type="submit" value="submit" />
    </div>
</form>

但是我无法发送参数。

在服务器端,我的身份验证用户功能

  public string JSONDataLogin(string username,string password)
    {
        DataBaseConnectionClass GetUserList = new DataBaseConnectionClass();
        response = GetUserList.select("my select query are here");



        if (response.Rows.Count > 0)
        {
            return js.Serialize("true");
        }
        return js.Serialize("no found");
    }

我在GET方法中的代码看起来不错,但是在POST方法中我无法获取参数。

3 个答案:

答案 0 :(得分:0)

如果您想使用WCF创建一个Restful post操作,请尝试将以下属性添加到您的操作中

   [WebInvoke(Method = "POST", UriTemplate = "getdata",ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Bare,RequestFormat = WebMessageFormat.Json)]
   [OperationContract(Name = "PostData"), FaultContract(typeof(CustomFault))]
   ResponseModel PostData(InputModel requestData);

使用Post作为操作从客户端发布数据,并在正文中将参数传递为

{
  "Key": "Value"
} 

如果您的InputModel包含以下属性

public class InputModel
{
    public string Key { get; set; }
}

答案 1 :(得分:0)

尝试以下代码:

     [OperationContract]
     [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json,
     BodyStyle = WebMessageBodyStyle.WrappedRequest,
     ResponseFormat = WebMessageFormat.Json, UriTemplate = "/json")]
     void PostData(string id);

答案 2 :(得分:0)

namespace RestService
{        
    [ServiceContract]
    public interface RestServiceWareHouse
    {

        [OperationContract]
        [WebInvoke(Method = "POST",
            ResponseFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Wrapped,
            UriTemplate = "/jsonUserList")]
        string JSONData();
    }
}

.svc文件中的我的功能

public string JSONData()
{return "json format data";}