客户端调用Web服务

 2023-09-10 阅读 15 评论 0

摘要:用JS,代码如下: function btn_click (a, b) { var xmlObj = new ActiveXObject("Msxml2.DOMDocument") ; var sXml = "<?xml version=\"1.0\" ?>" ; sXml += "<soap:Envelope " sXml +&
用JS,代码如下:
 function btn_click (a, b)
        {
                var xmlObj = new ActiveXObject("Msxml2.DOMDocument") ;
                var sXml  = "<?xml version=\"1.0\" ?>" ;
                      sXml += "<soap:Envelope "
                      sXml += "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " ;
                      sXml += "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" " ;
                      sXml += "xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" ;
                      sXml += "<soap:Body>" ;
                      sXml += "<Add xmlns=\"http://tempuri.org/\">" ;
                      sXml = sXml + "<a>" + a.value  + "</a>" ;
                      sXml = sXml + "<b>" + b.value  + "</b>" ;                     
                      sXml += "</Add></soap:Body></soap:Envelope>"
               
                xmlObj.loadXML(sXml) ;
               
                XmlRequest.innerText =  xmlObj.xml  ;
               
                var xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP") ;
                xmlHTTP.Open ( "Post", "http://localhost/WebService/MyWebService.asmx", false) ;
                xmlHTTP.setRequestHeader("SOAPAction", "http://tempuri.org/Add") ;
                xmlHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8" ) ;
                xmlHTTP.Send(xmlObj.xml) ;
                MyResult.innerText =  xmlHTTP.responseText ;
               
                var xmlResponse = xmlHTTP.responseXML ;
                answer.innerText = xmlResponse.selectSingleNode("soap:Envelope/soap:Body/AddResponse/AddResult").text ;
        }

</script>


<form>
        <p>Please input a:<input id="a" name="a"></input></p>
        <p>Please input b:<input id="b" name="b"></input></p>
        <p>
        <input type="button" id="btn"  value="Enter"
                οnclick="jscript:btn_click(a, b)"></input>
        </p>
        <p>Answer is <span id="answer"></span></p>
        <hr></hr>
        <p>Request:</p>
        <span id="XmlRequest"></span>
        <p>Response:</p>       
        <span id="MyResult"></span>
       
</form>

</body>
</html>

用c#程序调用:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Xml;
using Microsoft.Web.Services3.Messaging;
using Microsoft.Web.Services3;
namespace SOAP
{
    class MathClient : SoapClient
    {
        public MathClient(Uri destination) : base(destination)
            //: base(destination)
        {
        }

        private SoapEnvelope CreateMessage(string op, int a, int b)
        {
            SoapEnvelope envelope = new SoapEnvelope();
            envelope.CreateBody();
            envelope.Body.InnerXml = string.Format(
                @"<{0} xmlns = 'http://tempuri.org/'>
                    <a>{1}</a>
                    <b>{2}</b>
                </{0}>", op, a, b);
            return envelope;
        }

        [SoapMethod("http://tempuri.org/Add")]
        public int Add(int a, int b)
        {
            try
            {
                SoapEnvelope sendEnvelope = CreateMessage("Add", a, b);

                SoapEnvelope receiveEnvelope = base.SendRequestResponse("Add", sendEnvelope);
                int x = XmlConvert.ToInt32(receiveEnvelope.InnerText);
                return x;
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
                return -1;
            }
        }
    }
}
 class Program
    {
        static void Main(string[] args)
        {
            MathClient mathiClient = new MathClient(new Uri("http://localhost/WebService/MyWebService.asmx"));
            int a = mathiClient.Add(2, 10);
            Console.WriteLine(a);
        }
    }

转载于:https://www.cnblogs.com/leon916/archive/2008/01/13/1037298.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/39248.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息