atlas學(xué)習(xí)實(shí)踐系列之三(遠(yuǎn)程web services調(diào)用)
上篇地址:atlas學(xué)習(xí)實(shí)踐系列之二(AutoCompleteExtender篇)
atlas調(diào)用本地web services那是相當(dāng)?shù)暮唵危{(diào)用遠(yuǎn)程的也不難,看了dflying chen的幾篇文章也學(xué)了不少內(nèi)容,尤其是yahoo天氣預(yù)報(bào)的例子更是受益匪淺。自己動(dòng)手實(shí)踐一把。
目標(biāo):實(shí)現(xiàn)IP地址查詢功能.輸入IP地址,獲得該IP所在的國家和城市。
難點(diǎn):1)如何設(shè)置調(diào)用遠(yuǎn)程服務(wù)的asbx文件(有關(guān)配置支持asbx的方法可以見dflying chen 的介紹)
難點(diǎn)2):如何動(dòng)態(tài)獲得請求的客戶端IP,然后在js中使用。
首先,建立一個(gè)網(wǎng)絡(luò)服務(wù),用于查詢IP,IP地址信息庫是一個(gè)mdb文件,相關(guān)代碼為:
注意,該web services必須支持HTTP-Get方式訪問,故需要如下web.config配置
<system.web>
<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>
</system.web>網(wǎng)絡(luò)服務(wù)建好了,下面就是調(diào)用了。
建立一個(gè)新的網(wǎng)站,首先建立一個(gè)IPServices.asbx文件,該文件是將遠(yuǎn)程服務(wù)映射到本地的配置文件,有關(guān)信息見dflying chen的文章。文件內(nèi)容如下:
調(diào)用頁面為:
因?yàn)閖avscript不容易獲得本機(jī)IP地址,故在后臺注冊了腳本,解決第二個(gè)難點(diǎn)問題 :后臺代碼
using System;2
using System.Data;3
using System.Configuration;4
using System.Web;5
using System.Web.Security;6
using System.Web.UI;7
using System.Web.UI.WebControls;8
using System.Web.UI.WebControls.WebParts;9
using System.Web.UI.HtmlControls;10
using System.Text;11

12
public partial class _Default : System.Web.UI.Page 13
{14
protected void Page_Load(object sender, EventArgs e)15
{16
StringBuilder sb = new StringBuilder();17
string ip = Request.UserHostAddress;18
sb.Append("<script language=\"javascript\" type=\"text/javascript\">");19
sb.Append(" function getIpAddress(){var ip='"+ip+"';n2dog.IpServices.GetIPAddress({'ip':ip},onGetCompleted);}");20
sb.Append("</script>");21
string script = sb.ToString(); 22
Page.RegisterClientScriptBlock("IpServices", script);23

24
}25
}這樣目標(biāo)即可實(shí)現(xiàn),效果圖:
上篇地址:atlas學(xué)習(xí)實(shí)踐系列之二(AutoCompleteExtender篇)
再次感謝dflying chen的系列文章對我的啟發(fā)和指導(dǎo)。
出處:http://jillzhang.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。



浙公網(wǎng)安備 33010602011771號