WebService服務和ajax使用教程

來源:互聯網
上載者:User
ajax|web|教程

題外話

WebService技術已經有好幾年的曆史了,關於基礎的理論知識,此處省去,不說了。最近被炒了的ajax技術也被濫用的很是嚴重,至於細節,不是我說的重點。

ajax技術的入門比較低,javascript和xml的一點利用,個人以為沒啥含量,不能在根本上解決企業的需求或者問題,在安全性,線路傳輸的低級等方面都有致命的問題.

為什麼要把WebService和ajax放一起,原因很簡單, 兩者的共同點準確的來說是經常按照同一資料協議--------XML.

本文全部源碼userapp.rar

本文既不說明ajax的弱,也不說WebService的強大,只是通過一個例子說明了如何使用WebService技術和ajax技術.

我通過執行個體“使用者登陸”展示How.
在本地建立一個虛擬目錄UserApp。

先建立一個webservice:

namespace Cjjer{
using System;
using System.Web.Services;
[WebService (Name="WebsCjjer",Description="一個驗證使用者登陸的web服務",Namespace="http://www.cjjer.com/webs/")]
public class UserService{
    [WebMethod (Description ="輸入使用者名稱和密,返回許可權Int值,0表示失敗",MessageName="Login")]
    public int Login(string UserName,string UserPassword){
        return User.Check(UserName,UserPassword);
    }


};
}

我們暫時不看細節,注意這是這個class有頭WebService,標記了這是一個web服務.

csc編譯掉,放入bin目錄,然後login.asmx檔案:

<%@WebService Class="Cjjer.UserService"%>

我先不說驗證的細節,我們先假設User.Check()返回的是使用者層級,0表示驗證失敗.

現在在URL中輸入地址,訪問:如圖

點擊login:

輸入正確的使用者名稱和密碼,然後點擊調用:

如果不是正確的使用者名稱和密碼,將int節點值是0.

我們本地的調用是在SOAP操作.

還有很多方式:

SOAP(最低級的)

soap的這裡不說,以後會詳細說,我這裡注意看的是get和post方式:

HTTP GET

面是一個 HTTP GET 請求和響應樣本。所顯示的預留位置需要由實際值替換。

GET /userapp/login.asmx/Login?UserName=string&UserPassword=string HTTP/1.1
Host: s

return:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://www.cjjer.com/webs/">int</int>

HTTP POST

下面是一個 HTTP POST 請求和響應樣本。所顯示的預留位置需要由實際值替換。

POST /userapp/login.asmx/Login HTTP/1.1
Host: s
Content-Type: application/x-www-form-urlencoded
Content-Length: length

UserName=string&UserPassword=string

return:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://www.cjjer.com/webs/">int</int>

我們可以輸入url的地址,或者post的action,就可以訪問和提交擷取結果了.

此處可以選擇的操作其實也很多,使用螢幕清理技術,還可以用xml的處理架構提交資訊的結果,也可以用其他技術,不說了,反正都是貌似需要幾十行或者比我下面多一些處理。

我說的是使用SDK的工具wsdl工具處理代理的web服務.

wsdl /l:cs /out:WebsCjjer.cs /namespace:Webs /urlkey:WebsUser /nologo http://s:81/userapp/login.asmx?wsdl

得到WebsCjjer.cs源檔案。

注意:/urlkey:WebsUser表示是URL可以是從web.config檔案的WebsUser擷取,這樣做是避免寫入程式碼,看看WebsCjjer.cs

.......
    public WebsCjjer() {
            string urlSetting = System.Configuration.ConfigurationSettings.AppSettings["WebsUser"];
            if ((urlSetting != null)) {
                this.Url = urlSetting;
            }
            else {
                this.Url = "http://s:81/userapp/login.asmx";
            }
        }
.......

為了能被其他的人訪問,需要加入如下代碼到web.config:

    <system.web>
    <webServices>
        <protocols>
            <add name="HttpPost"/>
            <add name="HttpGet"/>
        </protocols>
    </webServices>

就是代理許可.

編譯了這個類,到bin,使用的時候如下:

void OnLogin(Object s,EventArgs e){
    Webs.WebsCjjer Ws_App = new Webs.WebsCjjer();
    returnint.Text = Ws_App.Login(MyUserName.Text,MyPassword.Text).ToString();
}

這樣,直接能返回結果,不需要我們自己正則或者xml處理,不需要知道驗證的細節



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.