通过浏览器调用WCF服务方法

Ste*_*man 29 wcf web-services

我有一个使用基本http绑定的WCF服务.如何通过浏览器调用其操作/方法?

Jal*_*aer 36

您需要将WebGetAttribute添加到您的方法,如下面的示例

[OperationContract]
[WebGet(UriTemplate = "/placesList/{userId}",
ResponseFormat = WebMessageFormat.Xml)]
List<Places> GetAllPlacesForUser(String userId)
{
  string xml = "";
  // build xml here
  return xml;
}
Run Code Online (Sandbox Code Playgroud)

现在在浏览器中,您可以像这样调用方法

http:// localhost:8085/GeoPlacesDataService/placesList/10
其中10是userId参数.

注意:为了添加WebGetAttribute,您必须引用System.ServiceModel.Web命名空间,该命名空间位于单独的程序集中

  • webget对我不起作用.IE向我显示"不良请求". (6认同)

Ste*_*eve 10

我建议为服务设置多个端点.使用webHttpBinding添加端点以获取服务的XML版本.如果这样做正确,您将从服务获得的响应与basicHttpBinding端点相同,但没有SOAP开销.

除此之外,您不能直接从浏览器调用SOAP Web服务,因为它需要表单发布.您可以使用工具来使用SOAP测试它,我建议使用Soap UI.它是用Java编写的,但我尽量不反对它.:)


小智 6

添加上述代码之后,端点属性在被修改的web.config,binding="webHttpBinding"behaviorConfiguration="webHttp".

  • 你介意指定包含这些属性的标签吗?或者,如果您向我们提供您的web.config文件,那将非常友好. (3认同)