Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / IIS

Call XML Web service from ASP

3.78/5 (9 votes)
10 May 20071 min read 1   3.6K  
How to Give a call to XML Web Service through ASP

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

{

/// <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));
}
}
}

//
// 

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.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here