How to pass multiple parameters in WCF Rest Servic

2019-03-28 13:13发布

问题:

I'm developing WCF REST service in C#. It works fine for a single parameter. Now I need to extend it to support multiple parameters. Please help me on this issue.

Thanks in advance...

Use following declaration in interface:

[OperationContract]
[WebInvoke(Method = "POST",
    ResponseFormat = WebMessageFormat.Xml,
    RequestFormat = WebMessageFormat.Xml,
    BodyStyle = WebMessageBodyStyle.WrappedRequest,
    UriTemplate = "login")]
resLogin Login(reqLogin rData, int floorId);

回答1:

Take a look at UriTemplate parameters. You can use the QueryString or URL path to pass in the floorId parameter.

URI Path Parameter

[WebInvoke(Method = "POST", UriTemplate = "login/floor/{floorId}")]
resLogin Login(reqLogin rData, int floorId);

QueryString Parameter

[WebInvoke(Method = "POST", UriTemplate = "login?floorId={floorId}")]
resLogin Login(reqLogin rData, int floorId);


回答2:

Add BodyStyle on OperationContract

[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)]


标签: c# wcf service