Is this true? Can I manually create my XML document in the vbscript,
pass it to the web service, then manually deconstruct the return XML?
Thanks,
Greg
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld(PhoneNumber tn)
{
return "Phone number is: (" + tn.NPA + ")" + tn.NXX + "-" + tn.Line;
}
}
public class PhoneNumber
{
private string _npa;
private string _nxx;
private string _line;
public PhoneNumber()
{
}
public PhoneNumber(string npa, string nxx, string line)
{
_npa = npa;
_nxx = nxx;
_line = line;
}
public string NPA
{
get { return _npa; }
set { _npa = value; }
}
public string NXX
{
get { return _nxx; }
set { _nxx = value; }
}
public string Line
{
get { return _line; }
set { _line = value; }
}
}
The following uses JavaScript to call the web service, but the same exact
steps would apply for VBScript. You can concatenate a string, or you can
use the DOM model (more information at
http://support.microsoft.com/kb/893659/).
The following is an HTML file, no ASP.NET or anything involved here (nothing
but client code).
<!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>
<title>Untitled Page</title>
</head>
<body>
<script language="javascript">
function CallWS(npa, nxx, line)
{
var x;
x = new ActiveXObject("Microsoft.XMLHTTP");
var envelope;
envelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap:Envelope
xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
"<soap:Body>" +
"<HelloWorld xmlns=\"http://tempuri.org/\">" +
"<tn>" +
"<NPA>" + npa + "</NPA>" +
"<NXX>" + nxx + "</NXX>" +
"<Line>" + line + "</Line>" +
"</tn>" +
"</HelloWorld>" +
"</soap:Body>" +
"</soap:Envelope>";
// send the POST to the Web service
x.open("POST", "http://localhost:8080/WebSite2/WebService.asmx",
false);
x.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
x.setRequestHeader("SOAPAction", "http://tempuri.org/HelloWorld");
x.send(envelope);
alert(x.responseText);
}
</script>
<button onclick="CallWS('404','555','1212');return false;" />
</body>
</html>
Kirk Allen Evans
Developer Evangelist
Microsoft Corporation
blogs.msdn.com/kaevans
<gr...@apba.net> wrote in message
news:1148674189.6...@i40g2000cwc.googlegroups.com...
> public class PhoneNumber
> public string NPA
Probably a perfect example given by Kirk.
My 2cents...
You may want to look into the topic of XML Serialization and custom
attributes in case you have a really complex structure of data possibly with
arrays.
--
Happy Hacking,
Gaurav Vaish
http://www.mastergaurav.org
http://www.edujini.in
-------------------
It looks like I will need to construct my SOAP message and body
manually, which is fine.
Thanks for the tip on XML Serialization, I'll look into that also.