【问题标题】:Accepting form fields via HTTP Post in WCF在 WCF 中通过 HTTP Post 接受表单字段
【发布时间】:2010-09-13 22:09:41
【问题描述】:

我需要接受表单数据到基于 WCF 的服务。界面如下:

[OperationContract]
[WebInvoke(UriTemplate = "lead/inff",
    BodyStyle = WebMessageBodyStyle.WrappedRequest)]
int Inff(Stream input); 

这是实现(示例 - 没有错误处理和其他保护措施):

public int Inff(Stream input)
{

    StreamReader sr = new StreamReader(input);
    string s = sr.ReadToEnd();
    sr.Dispose();

    NameValueCollection qs = HttpUtility.ParseQueryString(s);
    Debug.WriteLine(qs["field1"]);
    Debug.WriteLine(qs["field2"]);

    return 0;
}

假设 WCF,除了解析传入的流之外,还有更好的方法来完成此任务吗?

【问题讨论】:

    标签: wcf http-post webinvoke


    【解决方案1】:

    您可以使用 jquery 序列化表单字段并将其打包为 json 请求到 wcf 服务。

    【讨论】:

      【解决方案2】:

      我记得在 DevLink 上和你谈过这个。

      由于您必须支持表单字段,因此获取这些字段的机制(您当前正在做的事情)不会改变。

      可能有帮助的事情,特别是如果您想为不需要表单字段的新应用程序重用您的服务是创建一个通道来解构您的流并将其重新打包为 XML/JSON/SOAP/Whatever 并具有您的表单客户端通过它与服务通信,而不使用表单的客户端可以使用另一个通道堆栈。只是一个想法......

      希望对您有所帮助。如果您需要有关频道的帮助,请随时告诉我。

      【讨论】:

      • James,我对您如何在没有表单字段的情况下使用 WCF 实现这一点非常感兴趣。您能否指出我可能会获得有关如何执行此操作的更多信息的方向?提前致谢。
      猜你喜欢
      • 2012-12-18
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      相关资源
      最近更新 更多