将HTTP POST发送至WCF服务
需要发生什么才能允许HTTP POST至WCF服务?将HTTP POST发送至WCF服务
我想让人们不仅可以使用SOAP与此服务,但他们也必须能够HTTP POST到此服务,并理想地接收XML响应。
我找不到一个简单的方法来允许WCF服务接受HTTP POST。
我已经过了HTTP 415错误,需要一些帮助,可能是关于端点的web.config更改,或者方法(WebInvoke)上方的其他属性。
谢谢!
为了通过标准HTTP动词与WCF服务对话,您需要使用WCF REST组件。
在.NET 3.5 SP1中,您将需要WCF REST Starter Kit(它不是基本包的一部分)。
当你有这个,你可以在你的WCF服务中定义一个端点为webHttpBinding
,基本上应该允许你定义GET,POST,PUT和DELETE操作。
查看WCF REST developer center了解大量白皮书,教程,演练和截屏视频,向您展示如何完成所有这些工作。
简而言之,你会装饰要暴露在HTTP REST与WebGet
或WebInvoke
属性和网址模板中您的服务方法(S) - 类似:
[ServiceContract]
public partial class YourService
{
[WebInvoke(Method = "POST", UriTemplate = "yourservice/{id}/save")]
[OperationContract]
SomeReturnType YourMethodCall(string someParam);
...
}
,然后在你的web.config
(在IIS托管)或app.config
你需要用正确的结合端点:
<endpoint name="webEndpoint"
address="...."
binding="webHttpBinding"
contract="IYourServiceContract" />
您可能还需要在你的配置了一些额外的东西 - WCF REST开发中心应该进入全细节非常深入。
感谢您的及时响应。我会看@初学者工具包和开发中心。 – 2010-11-21 23:56:36
我使用REST Starter Kit @为POX(普通HTTP XML)WCF的东西找到了一个很棒的视频:http://www.msdev.com/Directory/Description.aspx?eventId=1312 – 2010-11-22 21:33:13