博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net操作WebServices
阅读量:4580 次
发布时间:2019-06-09

本文共 3817 字,大约阅读时间需要 12 分钟。

最近在看一些关于webServices的资料,做了一个下例子整理一下,主要包括.net平台下创建services服务、后台访问和前端Ajax访问三部分。

一、创建webServices服务。

1、打开vs(本人2012),新建项目—>Web—>ASP.NET空Web空应用程序。

2、在项目上右击选择“添加新建项目”--->Web->Web服务。

3、添加两个方法:

    1>根据阿拉伯数字获得大写的文字

    2>获得用户列表

代码和普通的C#代码一样整体代码下:

1 using System.Collections.Generic; 2 using System.Web.Services; 3  4 namespace WebServices 5 { 6     [WebService(Namespace = "http://tempuri.org/")] 7     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 8     [System.ComponentModel.ToolboxItem(false)] 9     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 10     [System.Web.Script.Services.ScriptService]11     public class GetBigString : WebService12     {13         /// 14         /// 根据阿拉伯数字或得大写15         /// 16         /// 17         /// 
18 [WebMethod]19 public string ConvertBit(int number)20 {21 string str;22 switch (number)23 {24 case 1:25 str = "一";26 break;27 case 2:28 str = "二";29 break;30 case 3:31 str = "三";32 break;33 default:34 str = "请输入正确的一位数字";35 break;36 }37 return str;38 }39 40 /// 41 /// 获得学生集合42 /// 43 /// 44 ///
45 [WebMethod]46 public List
GetStudentList(string stringId)47 {48 var list = new List
();49 var t = new Studnet { Address = "湖北省通城县咸宁市隽水镇", Age = 10, Name = "张三" };50 var t2 = new Studnet { Address = "北京市海淀区", Age = 10, Name = "李四" };51 list.Add(t);52 list.Add(t2);53 return list;54 }55 }56 57 public class Studnet58 {59 public string Name { get; set; }60 61 public int Age { get; set; }62 63 public string Address { get; set; }64 65 }66 }
View Code

     将该asmx文件设为启动项,运行项目,就能看到该services的说明文件,如:”支持下列操作。有关正式定义,请查看”服务说明“字样。 点击在地址栏加上“?WSDL”或者点击“服务说明”,既可查看该webservices的说明文档,如:http://localhost:4828/GetBigString.asmx?WSDL。总之,能看到该页面,既说明服务启动成功。为了等下客户端调用方便,可将该程序部署到IIS中。

二、在程序中通过引用服务的方式调用

1、另外新建一个web项目。

2、在"引用"上右击选择:”添加服务引用...“

3、输入刚才浏览器中运行的服务地址,点击”转到“。(如果没有部署的IIS上,那么在添加引用的时候,需要将该服务项目运行起来,否则不能添加引用)

4、输入自定义命名空间,点击确定即可。项目中即出现"Service References"文件夹。

5、在项目中,通过实例化类的方式,调用服务。

我在web项目中添加了一个aspx文件,在后台cs代码中添加如下代码:

1 using System; 2 using System.Web.UI; 3 using WebServices; 4  5 namespace Client 6 { 7     public partial class Index : Page 8     { 9         protected void Page_Load(object sender, EventArgs e)10         {11             // 调用WebServices,将结果赋值给页面控件12             TextBox1.Text = GetNumberString(1);13         }14 15         private string GetNumberString(int numner)16         {17             // 实例化服务类18             var g = new GetBigString();19             var str = g.ConvertBit(numner);20             return str;21         }22     }23 }
View Code

页面代码如下:

1 2     
3
4
5
6
7
View Code

运行该web项目,页面即可出现相应的结果。显示:”一“

主意:在运行web客户端项目的时候,WebServices项目需要启动。

三、用ajax的方式调用WebServices

还是上面的WebServices服务,我们通过前端ajax调用,js代码如下:

1 
View Code

即可在控制台输出WebServices中的list数据对应的json数据了。

 

四、需要主意的几点:

1、在通过添加服务引用,或者通过ajax调用的过程中,WebServices项目相应是运行状态。

2、我们在GetStudentList方法中,定义了一个string类型的参数,虽然项目中没有用到,但是在ajax调用的时候,必须传参,否则报错。

3、在传递参数的时候,需要把整个参数部分用单引号括起来。

4、如需要ajax调用,需要取消WebServices类文件的第一行注释代码:

// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。

[System.Web.Script.Services.ScriptService]

5、在ajax调用中,会出现ajax请求跨域的问题。

已阻止跨源请求:同源策略禁止读取位于 **** 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。
 解决方案参考:
 

 到此实例结束,技术有限,简单实列仅供入门参考。

 

 

转载于:https://www.cnblogs.com/litianci/p/4909689.html

你可能感兴趣的文章