近期初次接手一個公司的管理系統開發任務,因為公司需要有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下的接口方法很多.....不止這一個列出支持的中國省份這一個,...這里只是演示...以上...如此;