【问题标题】:Consuming WCF Rest services with visual studio 2010?使用 Visual Studio 2010 使用 WCF Rest 服务?
【发布时间】:2011-03-26 18:30:16
【问题描述】:

我习惯于使用soap服务,你添加一个服务引用,它会为每个方法创建强类型类(返回类型)..

当然 REST 不能这样工作

如何使用 WCF REST 服务?

有没有办法为返回类型使用强类型类?

我正在专门使用 Visual Studio 2010

任何想法或想法都非常感谢

提前致谢

【问题讨论】:

  • 不,不是——如果真的没有机器可读的服务定义(比如带有 SOAP 的 WSDL/XSD),你将如何创建强类型类......这是我的一大缺点对 REST 的看法——你只是得到了一团尖括号汤,你必须希望在某个地方有一些有用的文档来描述它......
  • @marc_s 实际上,声称是 RESTful 并提供“尖括号汤块”的服务完全忽略了 REST 的自我描述约束和精确媒体类型的重要性。跨度>
  • Darrel,我现在可以工作了.. 在响应对象上使用 ReadAsDataContract..

标签: wcf visual-studio-2010 rest wcf-rest


【解决方案1】:

Is there a WCF Rest C# Client Generation Tool?。如果您同时拥有服务和客户端,则可以重用合同并使用 WebChannelFactory 实例化客户端通道。

【讨论】:

  • 如果您要使用 .net 合同并(反)序列化为 .net 类型的线路两端,您为什么还要打扰 REST 绑定? wshttpbinding 不是更好的选择吗?
  • 我的全部目的是摆脱 SOAP...我不使用它提供的一半东西所以重点是什么...我只想能够将我的数据返回到对象中而不是而不是通过 XML 并使用方法 ReadAsDataContract .. 现在已排序
  • @mark 好的,所以你可以随意称我为迂腐,但你想做的不是 REST。我并不是说这不是一种有效的方法,只是要注意,当有人说“你不能这样做不是 RESTful”时,你可以随意忽略它们 :-)
  • 好的点。我当然希望听到你的 cmets。再次感谢。我会进一步调查.. 我知道我做事的方式可能不是 PURE REST,而是通过 WCF 支持和推荐(使用 REST)...这就是 ReadAsDataContract 方法存在的原因...就我而言没有什么特别的事情发生可以看到...只是这些方法从 REST 服务中获取 XMl 并填充一些 .net 类...真的没有魔法...再次感谢您的 cmets...非常感谢
【解决方案2】:
        // It is used to call the webservice url
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://careernet.localhost/rep-details/report_details/retrieves");
        request.Method = "POST";
        request.ContentType = "application/json";
        request.Accept = "application/json";

        try
        {
            WebResponse response = request.GetResponse();

            Stream responseStream = response.GetResponseStream();

           // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(responseStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();
            // ...

我希望它对你有用。

【讨论】:

    猜你喜欢
    • 2011-04-23
    • 2011-09-10
    • 2012-04-14
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多