C#如何使用Soap协议调用WebService?

WebService是什么?它的作用?

WebService是一个平台独立、低耦合的、自包含的、基于可编程的可使用xml描述、调用的web应用程序,用于开发分布式的交互式的应用程序。

Soap是什么?它的作用?

Simple Object Access Protocol(简单对象访问协议)是交换数据的一种协议规范,是一种轻量的、简单的、基于xml的协议,用于web应用程序之间交换信息或数据交互的结构化或固化的信息。

 

如何创建基于Soap协议的WebService?

1、创建一个基于SoapHeader类的头部信息类

 1     public class Header : SoapHeader
 2     {
 3         private string _code = string.Empty;
 4         private string _token = string.Empty;
 5 
 6         public string Code
 7         {
 8             get
 9             {
10                 return _code;
11             }
12 
13             set
14             {
15                 _code = value;
16             }
17         }
18 
19         public string Token
20         {
21             get
22             {
23                 return _token;
24             }
25 
26             set
27             {
28                 _token = value;
29             }
30         }
31 
32         public Header()
33         {
34 
35         }
36 
37         public Header(string r_code, string r_token)
38         {
39             this._code = r_code;
40             this._token = r_token;
41         }
42     }
View Code

2、声明类&创建验证方法

 1         public Header header = new Header();
 2 
 3         string code = "simoje";
 4         string token = "helloworld";
 5 
 6         private bool ValidateToken(string _code, string _token)
 7         {
 8             if (header.Code == code && header.Token == token)
 9             {
10                 return true;
11             }
12             else
13             {
14                 return false;
15             }
16         }
View Code

3、创建成员方法

1         [SoapHeader("header")]
2         [WebMethod]
3         public string HelloWorld(string para)
4         {
5             // do some things
6         }
View Code

注:SoapHeader括号中是声明的类实例名

 

如何使用Soap协议调用WebService?

1、引用WebService,取名为hello_service

2、声明Header类,并传入code与token

1              hello_service.Header header = new hello_service.Header();
2              validate.Code = "simoje";
3              validate.Token = "hello_world";
View Code

3、调用HelloWorld方法

1             hello_service.Simoje_APISoapClient api = new hello_service.Simoje_APISoapClient();
2 
3             JObject jo = new JObject(
4                 new JProperty("para", "some paras"));
5 
6 
7             api.HelloWorld(header, jo.ToString());
View Code

注:JObject为newtonsoft.dll封装的json类,可在http://www.cnblogs.com/simoje/p/4766215.html得到。

 

 

 

...
原文地址:https://www.cnblogs.com/simoje/p/5140281.html