方法 : Web サービス クライアントから非同期呼び出しを行う
このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.
クライアント アプリケーションから Web サービスに対して非同期呼び出しを行う方法を次のコード例に示します。この例は、「ASP.NET を使用して作成する XML Web サービスのデザイン ガイドライン」で説明されているガイドラインの 1 つを示しています。
セキュリティ 注 : |
---|
この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。詳細については、「Script Exploits Overview」を参照してください。 |
例
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E)
{
MyMath.Math math = new MyMath.Math();
// Call to Add Web service method asynchronously
// and then wait for it to complete.
IAsyncResult result =
math.BeginAdd(Convert.ToInt32(Num1.Text),
Convert.ToInt32(Num2.Text),
null,
null);
// Wait for asynchronous call to complete.
result.AsyncWaitHandle.WaitOne();
// Complete the asynchronous call to Add Web service method.
float total = math.EndAdd(result);
// Display results in a Label control.
Total.Text = "Total: " + total.ToString();
}
</script>
<body>
<form action="MathClient.aspx" runat=server>
<font face="Verdana">
Enter the two numbers you want to add and then press
the Total button.
<p>
Number 1:
<asp:textbox id="Num1"
runat=server/>
+
Number 2:
<asp:textbox id="Num2"
runat=server/>
=
<asp:button id="Total_Button"
text="Total"
OnClick="EnterBtn_Click"
runat=server/>
<p>
<asp:label id="Total" runat=server/>
</font>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(Src As Object, E As EventArgs)
Dim math As New MyMath.Math()
' Call to Add Web service method asynchronously
' and then wait for it to complete.
Dim result As IAsyncResult = _
math.BeginAdd(Convert.ToInt32(Num1.Text), _
Convert.ToInt32(Num2.Text), _
Nothing, _
Nothing)
' Wait for asynchronous call to complete.
result.AsyncWaitHandle.WaitOne()
' Complete the asynchronous call to Add Web service method.
Dim addtotal As Single = math.EndAdd(result)
' Display results in a Label control.
Total.Text = "Total: " & addtotal.ToString()
End Sub
</script>
<body>
<form action="MathClient.aspx" runat=server>
<font face="Verdana">
Enter the two numbers you want to add and then press
the Total button.
<p>
Number 1:
<asp:textbox id="Num1"
runat=server/>
+
Number 2:
<asp:textbox id="Num2"
runat=server/>
=
<asp:button id="Total_Button"
text="Total"
OnClick="EnterBtn_Click"
runat=server/>
<p>
<asp:label id="Total" runat=server/>
</font>
</form>
</body>
</html>
参照
処理手順
方法 : 待機手法を使用して非同期 Web サービス クライアントを実装する
方法 : コールバック手法を使用して非同期 Web サービス クライアントを実装する
概念
ASP.NET を使用して作成する XML Web サービスのデザイン ガイドライン
XML Web サービスとの非同期通信