65.9K
CodeProject 正在变化。 阅读更多。
Home

从ASP调用XML Web服务

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.78/5 (9投票s)

2007年5月10日

1分钟阅读

viewsIcon

138412

downloadIcon

3664

如何通过ASP调用XML Web服务。

引言

本文档将帮助您理解如何通过 ASP Web 应用程序调用 XML Web 服务并从服务中检索值。

背景

设计 Web 服务并在 ASP.NET 中调用/使用它非常容易,因为 Microsoft .NET 技术为此提供了固有的/内置的支持。 但是,通过经典的 ASP Web 应用程序执行相同的操作则有些棘手...........

使用代码

本文包含两个主要部分

1. .Net Web 服务

2. ASP Web 应用程序调用 XML Web 服务。

这是我们的 .Net Web 服务代码

 
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace Test_ASP_Service1

{

/// <summary>
/// Summary description for Service1.
/// </summary>

public class Service1 : System.Web.Services.WebService
{

public Service1()
{
    //CODEGEN: This call is required by the ASP.NET Web Services Designer
    InitializeComponent();

}

#region Component Designer generated code
//Required by the Web Services Designer 

private IContainer components = null;
private void InitializeComponent()
{

}
protected override void Dispose( bool disposing )
{
    if(disposing && components != null)
        {
        components.Dispose();
    }
    base.Dispose(disposing); 

}
#endregion

[WebMethod]
public string Sum(int val1,int val2)
{
    return "The Sum of two number= "+(val1+val2);
}
[WebMethod]
public string Subtract(int val1,int val2)
{
    return "The Subtraction of two number= "+ ( (val1>val2) ? (val1-val2):(val2-val1));
}
}
}

//
// 

Web 服务包含两个 Web 方法 Sum() 和 Subtract(),执行相应的操作。

接下来是调用 Web 服务的 ASP Web 应用程序代码。

<html>
<head>
<title>从经典 ASP 调用 webservice</title>
</head>
<body>
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
Dim xmlhttp
Dim DataToSend
DataToSend="val1="&Request.Form("text1")&"&val2="&Request.Form("text2")
Dim postUrl
If Request.Form.Item("Operation")="Sum" Then
postUrl = "https:///Test_ASP_Service1/Service1.asmx/Sum"
else
postUrl = "https:///Test_ASP_Service1/Service1.asmx/Subtract"
end if
Set xmlhttp = server.Createobject("MSXML2.XMLHTTP")
xmlhttp.Open "POST",postUrl,false
xmlhttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xmlhttp.send DataToSend
Response.Write DataToSend & "<br>"
Response.Write(xmlhttp.responseText)
Else
Response.Write "首次加载"
End If
%>
<FORM method=POST name="form1" ID="Form1">
输入两个值以执行操作<BR>
<select name="Operation">选择操作<option value="Sum">求和</option><option value="Subtraction">减法</option></select>
<INPUT type="text" name="text1" ID="Text1">
<INPUT type="text" name="text2" ID="Text2">
<BR><BR>
<INPUT type="submit" value="GO" name="submit1" ID="Submit1">
</form>
</body>
</html>

关注点

从 XML Web 服务返回的结果是字符串形式。 因此,如果您需要像数据集值或表这样的大量结果,则必须根据需要标记化结果。

© . All rights reserved.