公司的项目中用到了WebService,所以学习了一下net环境下的WebService搭建并且在此记录供大家学习参考。关于WebService的概念啥的我就不说了,直接进入主题以解决大家的刚需,嘿嘿。
主要步骤
- 创建服务,创建一个.net framwork web项目用来提供WebService服务
- 调用服务,这里调用我写了两个案例,一个是.net framwork控制台调用,另一个是.net core web来调用。不过大体相似。
创建服务
1.创建一个.net framwork web 空项目
2.右击项目名,点击添加 -> 新建项(Ctrl + Shift + A)
3.选择Web -> Web服务(ASMX),点击添加
4.如图,创建了一个WebService1.asmx文件,我在里面添加了Sum,Sum1,Sum2方法。
5.点击启动,可以看到首页中有我们自定义的方法。没有ref参数的方法可以点击对应方法来进行调用。 记录下URL:https://localhost:44344/WebService1.asmx,后面客户端配置服务引用的时候要用到。
WebService服务到此也就创建完成了,接下来我们要创建客户端来调用这些方法。
调用服务
案例1(.net framework 控制台)
1.创建一个.net framework 控制台项目
2.在 引用 右击,点击添加服务引用。
3.点击 高级 -> 添加Web引用
4.在URL中填入上一步的URL:https://localhost:44344/WebService1.asmx
然后点击右边的 “->”,填写完引用名后点击 “添加引用”。
5.然后你会发现项目多了一个文件“Web References/引用名”。
6.然后在代码中写入以下代码来调用Web Service服务,点击运行就OK啦。
namespace WebServiceClient1
{
class Program
{
static void Main(string[] args)
{
// 动态创建客户端
// localhost.WebService1 service = new localhost.WebService1("SOAP", "https://localhost:44344/WebService1.asmx")
localhost.WebService1 service = new localhost.WebService1();
Console.WriteLine("HelloWorld返回值:" + service.HelloWorld());
Console.WriteLine("sum返回值:" + service.sum(1, 2));
int a = 0;
Console.WriteLine("sum1返回值:" + service.sum1(3, 4, ref a) + " a的值为:" + a);
Console.WriteLine("sum2返回值:" + service.sum2(5, 6));
Console.ReadLine();
}
}
}
最后说一下服务路径的配置信息,在App.config文件下
案例2(.net core web api)
1.创建一个.net core web api项目
2.右击“Connected Services” -> “管理连接的服务”
3.如图填写配置信息。
4.就可以看到Connected Services下生成如下文件。
5.最后写我们的代码就行了。
public static void Main(string[] args)
{
WebService1SoapClient client =
new WebService1SoapClient(WebService1SoapClient.EndpointConfiguration.WebService1Soap,
"https://localhost:44344/WebService1.asmx");
// 如果原方法类型返回类型为基本数据类型且参数不含ref,则调用方法如下
int r1 = client.sumAsync(1, 2).Result;
// 如果原方法返回类型为基本数据类型且参数含ref,则调用方法如下
int c = 0;
sum1Response r2 = client.sum1Async(new sum1Request(1, 2, c)).Result;
Console.WriteLine(r2.c);
Console.WriteLine(r2.sum1Result);
// 如果原方法返回类型为 类 且参数不含ref,,则调用方法如下
sum2Response r3 = client.sum2Async(1, 2).Result;
Console.WriteLine(r3.Body.sum2Result);
}
以上就是.net WebService的简单学习。