在 ASP.NET Core 项目中调用 WebService 的方法,可以使用 .NET Core 自带的 System.ServiceModel 命名空间提供的 WCF 客户端。以下是详细的攻略:
步骤一:添加服务引用
在 ASP.NET Core 项目中调用 WebService,需要先添加服务引用。可以使用 Visual Studio 的“添加服务引用”功能或者使用命令行工具 svcutil.exe 添加服务引用。
使用 Visual Studio 添加服务引用的方法如下:
- 在 Visual Studio 中打开 ASP.NET Core 项目。
- 右键单击项目,选择“添加”->“服务引用”。
- 在“服务引用”对话框中,输入 WebService 的 URL,然后单击“Go”按钮。
- 在“服务引用”对话框中,选择要添加的服务引用,然后单击“确定”按钮。
使用命令行工具 svcutil.exe 添加服务引用的方法如下:
- 打开命令提示符。
- 输入以下命令:
svcutil.exe http://localhost/MyService/MyService.asmx?wsdl
其中,http://localhost/MyService/MyService.asmx?wsdl 是 WebService 的 URL。
步骤二:创建 WCF 客户端
在 ASP.NET Core 项目中调用 WebService,需要创建一个 WCF 客户端。可以使用 System.ServiceModel 命名空间提供的 ChannelFactory
using System.ServiceModel;
public class MyServiceClient : ClientBase<IMyService>, IMyService
{
public MyServiceClient(Binding binding, EndpointAddress address) : base(binding, address)
{
}
public string HelloWorld()
{
return Channel.HelloWorld();
}
}
在上面的示例中,我们创建了一个名为 MyServiceClient 的 WCF 客户端,并实现了 IMyService 接口。在 MyServiceClient 的构造函数中,我们使用 Binding 和 EndpointAddress 参数初始化了基类 ClientBase
示例一:使用 BasicHttpBinding
以下是一个示例,演示如何使用 BasicHttpBinding 调用 WebService:
var binding = new BasicHttpBinding();
var endpoint = new EndpointAddress("http://localhost/MyService/MyService.asmx");
var client = new MyServiceClient(binding, endpoint);
var result = client.HelloWorld();
在上面的示例中,我们创建了一个 BasicHttpBinding 对象,并使用 EndpointAddress 对象指定了 WebService 的地址。然后,我们使用 MyServiceClient 对象调用了 WebService 的 HelloWorld 方法,并将结果赋值给了一个名为 result 的变量。
示例二:使用 CustomBinding
以下是一个示例,演示如何使用 CustomBinding 调用 WebService:
var binding = new CustomBinding();
var textMessageEncodingBindingElement = new TextMessageEncodingBindingElement();
textMessageEncodingBindingElement.MessageVersion = MessageVersion.Soap11;
var httpTransportBindingElement = new HttpTransportBindingElement();
binding.Elements.Add(textMessageEncodingBindingElement);
binding.Elements.Add(httpTransportBindingElement);
var endpoint = new EndpointAddress("http://localhost/MyService/MyService.asmx");
var client = new MyServiceClient(binding, endpoint);
var result = client.HelloWorld();
在上面的示例中,我们创建了一个 CustomBinding 对象,并使用 TextMessageEncodingBindingElement 和 HttpTransportBindingElement 对象初始化了 CustomBinding 对象。然后,我们使用 MyServiceClient 对象调用了 WebService 的 HelloWorld 方法,并将结果赋值给了一个名为 result 的变量。
总结
在 ASP.NET Core 项目中调用 WebService,可以使用 .NET Core 自带的 System.ServiceModel 命名空间提供的 WCF 客户端。可以使用 Visual Studio 的“添加服务引用”功能或者使用命令行工具 svcutil.exe 添加服务引用。可以使用 ChannelFactory
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET Core项目中调用WebService的方法 - Python技术站