passing complex data types with vbscript?

Discussion in 'ASP .Net Web Services' started by greg@apba.net, May 26, 2006.

  1. Guest

    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
    , May 26, 2006
    #1
    1. Advertising

  2. 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
    <> wrote in message
    news:...
    > 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, May 27, 2006
    #2
    1. Advertising

  3. Guest

    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.
    , May 27, 2006
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Soren Kuula
    Replies:
    2
    Views:
    541
    Henry S. Thompson
    Dec 1, 2005
  2. ramu
    Replies:
    2
    Views:
    313
    rlblaster
    Feb 20, 2006
  3. sonic
    Replies:
    1
    Views:
    84
    sonic
    Aug 25, 2006
  4. thisis
    Replies:
    0
    Views:
    120
    thisis
    Oct 17, 2006
  5. Gary Roach
    Replies:
    0
    Views:
    103
    Gary Roach
    Sep 1, 2013
Loading...

Share This Page