构建soap客户端应用程序以将值发布到wsdl

时间:2016-10-27 10:14:00

标签: asp.net-mvc web-services soap wsdl

我已经编写了规范,我需要构建自己的soap客户端应用程序,以便在其他域上的wsdl文件中发布。作为示例,他们向我发送了一段代码,如何配置我的应用程序以生成请求。 这是一个例子:

   <SOAP-ENV:Envelope xmlns:SOAP-
    ENV="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-
  ENC="http://schemas.xmlsoap.org/soap/encoding/">   <SOAP-ENV:Body>     
  <completeAuthorization xmlns="http://tempuri.org/">       <rq>        
   <ID>1001234567</ID>      
    <Amount>100</Amount>  
       </rq>  
     </completeAuthorization> 
     </SOAP-ENV:Body> </SOAP-ENV:Envelope> 

我已经开始使用此功能,但它在政策来源方面给我一个错误

  <script type="text/javascript">
                            function soap() {
                                debugger;
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open('POST', 'https://www.someurl.com.mk/service/example.asmx', true);

        // build SOAP request
        var sr =
         '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"' +
          '  xmlns:xsd="http://www.w3.org/2001/XMLSchema"' +
          '  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
          '  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"' +
          '  xmlns:ns1466="http://tempuri.org/"><SOAP-ENV:Body>' +
          '  <ns1466:completeAuthorization>' +
          '  <ns1466:rq><ns1466:MerchantID>1001234567</ns1466:MerchantID>' +
          '  <ns1466:Amount>100</ns1466:Amount>' +
          '  </ns1466:rq></ns1466:completeAuthorization></SOAP-ENV:Body>' +
          '  </SOAP-ENV:Envelope>';

        xmlhttp.onreadystatechange = function () {

            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {

                    alert('done. use firebug/console to see network response');
                }
            }
        }

        xmlhttp.setRequestHeader('Content-Type', 'text/xml');
        xmlhttp.send(sr);

    }

我可以尝试的另一种方法是通过添加服务引用来引用wsdl。 我已经走到了这一步,但我现在不知道该怎么做才能将这些值发布到wsdl.Please一些建议。谢谢

       [HttpPost, ActionName("Edit")]
    [FormValueRequired("markorderaspaid")]
    public ActionResult MarkOrderAsPaid(int id)
    {
      Services.ServiceReference1.completeAuthorizationRq service = new 
       Services.ServiceReference1.completeAuthorizationRq();
            service.Amount = 12;

0 个答案:

没有答案