以多种方式使用WCF REST服务(.Net,纯XML)

以多种方式使用WCF REST服务(.Net,纯XML),wcf,web-services,rest,soap,Wcf,Web Services,Rest,Soap,我对WCF感到非常失望,因为我只想使用这个简单的场景: 使用REST提供一个Web服务,其中包含一个类似于/method/{param1}/{param2}/的UriTemplate和一个作为POST数据以XML形式发送到服务的第三个参数 只使用普通XML,没有SOAP开销 能够在VisualStudio中生成代理,以便使用.Net的客户端可以轻松使用该服务(这里不关心SOAP开销) 我可以创建1。二,。但我不能用3。我尝试在我的服务配置中添加webHttpBinding和basicHttpBi

我对WCF感到非常失望,因为我只想使用这个简单的场景:

  • 使用REST提供一个Web服务,其中包含一个类似于
    /method/{param1}/{param2}/
    的UriTemplate和一个作为POST数据以XML形式发送到服务的第三个参数
  • 只使用普通XML,没有SOAP开销
  • 能够在VisualStudio中生成代理,以便使用.Net的客户端可以轻松使用该服务(这里不关心SOAP开销)
  • 我可以创建1。二,。但我不能用3。我尝试在我的服务配置中添加
    webHttpBinding
    basicHttpBinding
    端点;我玩弄了
    标签,但我就是不能让它工作。我错过了什么


    注意:我看了这篇文章:但这里所描述的一切似乎都不管用

    不能为webHttpBinding生成客户端代理,basicHttpBinding使用SOAP。这是没有办法的。您所指的问题启用了这两个绑定。您不能从每个绑定中挑选您喜欢的功能

    但是,为什么要创建客户端代理?使用Microsoft.Http库调用您的服务非常简单

    var client = new HttpClient();
    var content = HttpContent.Create(myXmlDocument);
    client.Post("http://example.org/param1/param2",content)
    

    不能为webHttpBinding生成客户端代理,basicHttpBinding使用SOAP。这是没有办法的。您所指的问题启用了这两个绑定。您不能从每个绑定中挑选您喜欢的功能

    但是,为什么要创建客户端代理?使用Microsoft.Http库调用您的服务非常简单

    var client = new HttpClient();
    var content = HttpContent.Create(myXmlDocument);
    client.Post("http://example.org/param1/param2",content)
    

    我希望VS能够处理生成实体类型等问题。我使用basicHttpBinding for REST和wsHttpBinding for SOAP成功实现了一些功能。在WCF REST启动工具包中,有一个名为“将XML粘贴为类型”的函数,允许您基于剪贴板中返回的XML生成类。是的,我看到,但它不是一个内部API。基于.Net的客户应该能够插入他们的应用程序,而服务引用是目前最简单的。如果您在.Net 4和VS2010中使用WCF数据服务(也称为Astoria),您将能够“添加服务引用”。我不同意这种做法,但人们希望这样做。我希望VS能够处理生成实体类型等问题。我设法使用basicHttpBinding for REST和wsHttpBinding for SOAP实现了一些功能。在WCF REST启动工具包中,有一个名为“将XML粘贴为类型”的函数这允许您基于剪贴板中返回的XML生成类。是的,我看到了,但它不是内部API。基于.Net的客户应该能够插入他们的应用程序,而服务引用是目前最简单的。如果您在.Net 4和VS2010中使用WCF数据服务(也称为Astoria),您将能够“添加服务引用”。我不同意这种做法,但人们想这样做。