码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET与SOAP协议使用记录

时间:2016-05-21 13:01:03      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

近期初次接手一个公司的管理系统开发任务,因为公司需要有Android,IOS客户端,又要求有PC端的网页客户端....对服务请求的要求自然也就落在了统一接口访问上了....

使用ASP.NET的WEB服务(ASMX)对外提供统一访问接口...所有客户端以post/get数据的方式和WEB服务交换数据,并且不用关心数据的处理,也不直接访问数据库,至于WEB服务,则以JSON数据格式返回服务应答信息....以下记录为学习/开发过程记录,见识肤浅,仅仅为了自己而记录,也给初入门的朋友们一个入手指导,不足之处,望能见谅,理论知识自行查找:

首先可以新建一个项目(Visual C#-->ASP.NET Web应用程序).或者新建一个网站(Visual C#-->ASP.NET 空网站):[下面以新建一个项目为例:项目名称soapTry]

在项目下添加一个Web服务(ASMX),命名为WebServiceTest

技术分享

 

打开WebServiceTest.asmx文件:删除掉HelloWorld方法(不删除也可以),新建一个反转字符串的方法ReverseString(string message)和一个登陆验证演示的方法login(string i_tel,string i_psd):

技术分享

源码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting.Messaging;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

namespace soapTry
{
/// <summary>
/// WebServiceTest的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class WebServiceTest: System.Web.Services.WebService
{
[WebMethod]
public string ReverseString(string message) //新建这个方法
{
char[] arr = message.ToCharArray();
Array.Reverse(arr);
message = new string(arr);
return message;
}
[WebMethod]
public string login(string i_tel,string i_psd)
{
string tel = i_tel.Trim().ToString();
string psd = i_psd.Trim().ToString();
if (tel.Equals("admin") & psd.Equals("asd"))
{
return "Success";

}
else
{
return "False";
}
}
}

}

 

接下来.我们先来看看Web服务的预览:

技术分享

 

 

------------------------------------------------------------------------在浏览器中看到:---------------------------------------------------------------------------

技术分享

----------------------------------------------------------------------------图片分隔线-----------------------------------------------------------------------------------

我们写的那两个方法,就是这里的两个接口:我们以点击login为例(login里设置了判断当admin/asd输入时返回success):

----------------------------------------------------------------------------图片分隔线-----------------------------------------------------------------------------------

技术分享

----------------------------------------------------------------------------图片分隔线-----------------------------------------------------------------------------------

输入如上所示数据后,点击调用:

----------------------------------------------------------------------------图片分隔线-----------------------------------------------------------------------------------

技术分享

----------------------------------------------------------------------------图片分隔线-----------------------------------------------------------------------------------

这样就完成了和Web服务的数据交换....

 

接下来就是怎么在客户端使用这些接口了:

-------------------------------------------------------在客户端(网页上也就是.aspx页面)访问服务的方式:-----------------------------------------------------------

添加新项-->Web窗体,新建一个Test.aspx页...向Test.aspx添加一个label:

技术分享

在Test.aspx.cs文件里,添加如下代码:

技术分享

 

 

在浏览器中查看Test.aspx:

技术分享

 

这只是本机的服务访问方式....我们要在互联网环境下访问接口,比如说,我们想要访问天气的接口:

先看看天气预报接口的信息:访问网址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx

技术分享

 

要使用别人的接口,首先我们在自己的项目中引用这个服务:

技术分享

接着:

技术分享

选择高级选项....其它选项不要动,再选择"添加Web引用":

技术分享

进入:

技术分享

 

我们来看资源管理器里多了什么:

 

技术分享

 

如果是在一开始新建的是网站,那么添加web服务引用后,这个文件夹的布局格式应该是这样的:

技术分享

当然了,这种方式下,看起来更加明朗.....我们要使用的类便是划横线的WeatherWs....画圈的部分只是个命名空间....

 

在test.aspx.cs中.我们更改代码为:

技术分享

 

预览:

 

技术分享

 

WeatherWs下的接口方法很多.....不止这一个列出支持的中国省份这一个,...这里只是演示...以上...如此;

ASP.NET与SOAP协议使用记录

标签:

原文地址:http://www.cnblogs.com/360-782/p/asp_soap.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!