我已经编写了规范,我需要构建自己的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;