Introduction
This article helps you to understand about how to give a call to XML Web service through ASP Web application and retrieve the values from the service
Background
Designing the web service and calling/using it in ASP.NET is a very easy part because Microsoft .NET technology provides inherent/inbuilt support for it. But doing the same through classic ASP web application is little bit tricky...........
Using the code
This article contains to major Part
1. .Net Web Service
2. ASP Web application calling the XML Web service.
Here is our .Net Web Service Code
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace Test_ASP_Service1
{
public class Service1 : System.Web.Services.WebService
{
public Service1()
{
InitializeComponent();
}
#region Component Designer generated code
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));
}
}
}
The Web Service contain Two web-methos Sum() and Subtract() performing the relative operation.
Next is the ASP Web application code calling the Web Service.
<html>
<head>
<title>Calling a webservice from classic ASP</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 = "http://localhost/Test_ASP_Service1/Service1.asmx/Sum"
else
postUrl = "http://localhost/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 "Loading for first Time"
End If
%>
<FORM method=POST name="form1" ID="Form1">
Enter the two Values to perform Operation<BR>
<select name="Operation">Select Operation<option value="Sum">Sum</option><option value="Subtraction">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>
Points of Interest
The Result getting back from XML Web service is in the form of string. So if you want the bulky result like dataset values or table , you have to tokenize the result as per desire.