【发布时间】:2014-02-12 01:13:20
【问题描述】:
我使用的是 ASP.NET 4.0,需要在页面上的 javascript 中返回一个 SOAP (XML) 响应到一个 JSON 变量。我希望能够像使用任何 JSON 变量一样调用该变量及其属性。 Soap Web Service (.asmx) 文件不在我需要构建客户端(接收请求并将其放入 JSON 变量)的服务器上。此外,为了使这更复杂,发送到 Web 服务的 XML 请求需要发送用户名和密码才能返回项目。
Web 服务的 URL 在这里:http://ws.idssasp.com/members.asmx?wsdl
我想我会创建一个 Visual Studio Web 应用程序项目 (C#),我能够做到并很好地连接到 Web 服务,但是,这需要在 javascript 用来输出来的项目的页面上从网络服务的方法。因此,.aspx 文件在这种情况下不起作用,因为它只需要在标签内的 JSON 变量中输出 Web 服务响应的结果(可能在页面的头部,但对我来说并不重要)在哪里)。或者它可以动态创建一个 .JS 文件(这可能会更好,因为如果我的服务器上存在 js 文件,它将被缓存并且不需要多次调用 Web 服务)。但是,我不确定在 Visual Studio 中构建什么来实现这一点?而且我不确定如何将其输出到页面上。我想 JSON 变量也可以存储在服务器上的 Members.json 文件中,并且可以调用它来加载所需的 json。
在向另一台服务器发送请求后,如何从 SOAP、XML、响应中返回 JSON 数组,并且 SOAP 请求的标头中包含用户名和密码。这里有一个页面解释了请求所需的 XML 以及响应的外观:http://ws.idssasp.com/members.asmx?op=GetMemberList&pn=0
在同一页面上,他们向您展示了如何通过 PHP 进行操作,但 PHP 不可用,我只能使用 ASP.NET 4.0。这是他们的 PHP 方法:
$clientWS = new SoapClient('http://ws.idssasp.com/Members.asmx?wsdl');
$namespaceWS = 'http://ws.idssasp.com/Members.asmx';
$dmsClientU = '';
$dmsClientP = '';
$headerBodyWS = array('UserName' => $dmsClientU, 'Password' => $dmsClientP);
$headerWS = new SOAPHeader($namespaceWS, 'AuthorizeHeader', $headerBodyWS, false);
$clientWS->__setSoapHeaders(array($headerWS));
$results = $clientWS->GetMemberList();
print_r( $results );
我如何能够在 ASP.NET 4.0 中做同样的事情,但不是返回 XML 结果,而是返回一个在页面上的脚本标记中使用的 JSON 变量?
或者我想太多了,有更好的解决方案吗?
【问题讨论】:
标签: c# asp.net json web-services soap