使用WCF服务应用程序从表单获取POST数据

时间:2012-03-11 15:35:38

标签: c# html wcf

我厌倦了用WCF获取POST数据(我是新手)所以我真的不知道我做错了什么。我正在尝试使用以下格式发送POST数据:

<!doctype html>
<html>
<head></head>
<body>
    <form action='http://localhost:56076/Service.svc/invoke' method="post" target="_blank">
        <label for="firstName">First Name</label>: <input type="text" name="firstName" value="" />
        <label for="lastName">Last Name</label>: <input type="text" name="lastName" value="" />
        <input type="submit" />
    </form>
</body>
</html>

我正在使用WCF服务应用程序(在VS2008中):

    //IService.cs:

    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "invoke", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        string GetData(Stream aoInput);
    }
//Service.svc.cs
public class Service : IService
    {
        public string GetData(Stream aoInput)
        {
            using (StreamReader loReader = new StreamReader(aoInput))
            {
                string body = loReader.ReadToEnd();
                var @params = HttpUtility.ParseQueryString(body);
                return @params["FirstName"];
            }
        }
    }

在我按表单上的提交后执行服务时,我的代码中的断点没有响应。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我发现了other_wcf_stuff。所有技巧都在web.config中(必须声明绑定(仅限webHttpBinding)和行为配置)。我的服务界面现在也是:

[ServiceContract]
    public interface IService
    {
        [OperationContract]
        string GetData(Stream aoInput);
    }