Google Grupper understøtter ikke længere nye Usenet-opslag eller -abonnementer. Tidligere indhold er fortsat synligt.

passing complex data types with vbscript?

10 visninger
Gå til det første ulæste opslag

gr...@apba.net

ulæst,
26. maj 2006, 16.09.4926.05.2006
til
We have a set of .NET web services to provide access to our data. They
use complex data types for both incoming data and return data. We are
attempting to help another group access this web service from
vbscript/ASP. Is this possible? I have found a few posts scattered
around the internet saying complex data types aren't possible with
vbscript.

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

Kirk Allen Evans

ulæst,
26. maj 2006, 22.17.1426.05.2006
til
Absolutely, it's possible. Here's the web service:

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...

Gaurav Vaish (EduJini.IN)

ulæst,
27. maj 2006, 09.37.4127.05.2006
til

> Absolutely, it's possible. Here's the web service:

> 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
-------------------


gr...@apba.net

ulæst,
27. maj 2006, 18.06.4027.05.2006
til
Thanks for the replies. I hadn't mentioned that it was a SOAP web
service, so I'm glad you included that in your example.

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.

0 nye opslag