【ASP.NET】Webサービス (初級編)


サンプル

Sample.aspx(デザイン部)

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Sample.aspx.vb" Inherits="WebApplication1._call" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
  Transitional//EN" "">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="">http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <script type="text/javascript" language="javascript">
        function onButtonClick() {
            WebApplication1.WebService1.Add(2, 5, AddSuccess, null, null);
        }

        function AddSuccess(result) {
            target = document.getElementById("output");
            target. innerHTML = result;
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" value="Exec" onclick="onButtonClick();" />
    </div> 
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="WebService1.asmx" />
        </Services>
    </asp:ScriptManager>
    </form>
    <div id="output"></div>
</body>
</html>

解説

function onButtonClick() {
    WebApplication1.WebService1.Add(2, 5, AddSuccess, null, null);
}
で、Webサービスを呼び出す。呼び出したWebメソッドの実行が完了すると、非同期でAddSuccess()関数が呼び出される。

■書式
プロジェクト名.WebService名.WebMethod名(引数..., 成功した時のコールバック関数, 失敗した時のコールバック関数, ユーザーコンテキスト)

WebService1.asmx

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="">http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class WebService1
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
        Return a + b
    End Function

    <WebMethod()> _
    Public Function HelloWorld() As String
        Return "Hello World"
    End Function
End Class

参考文献

http://uchukamen.com/cs2005/WebServiceTest/Default.htm
http://www.ipentec.com/document/document.aspx?page=csharp-call-aspnet-webservice-from-javascript
http://d.hatena.ne.jp/quolc/20090116/1232117245