2011-05-28 72 views
0

这里是http://www.webservicex.net/stockquote.asmx?WSDL我可以把多个值到这个Web服务请求

我试图获得超过1股响应的WSDL。这个网络服务有可能吗?
Web服务需要1个参数,即符号。所以我插入1个符号代码是

$ WSDL = “http://www.webservicex.net/stockquote.asmx?WSDL”; // the wsdl
$ client = new SoapClient($ wsdl); (对象)数组('symbol'=>'SPY'));
var_dump($ quote);
echo $ quote-> GetQuoteResult。 "<br />";

我得到如下回应这是正确的

<StockQuotes><Stock><Symbol>SPY</Symbol><Last>133.51</Last><Date>5/27/2011</Date><Time>4:00pm</Time><Change>+0.51</Change><Open>133.37</Open><High>133.87</High><Low>132.9588</Low><Volume>120921856</Volume><MktCap>N/A</MktCap><PreviousClose>133.00</PreviousClose><PercentageChange>+0.38%</PercentageChange><AnnRange>101.13 - 137.18</AnnRange><Earns>0.00</Earns><P-E>N/A</P-E><Name>SPDR S&P 500</Name></Stock></StockQuotes><br />

我怎么能拿例如3个行情在一个请求的信息?例如,代号是SPY,^ NZ50和QQQ?我尝试了不同的解决方案,例如$quote = $client->GetQuote((object)array('symbol'=>'^NZ50', 'symbol'=>'QQQ', 'symbol'=>'SPY')); 我得到与最后一个元素相同的XML - SPY行情信息。
用这个$quote = $client->GetQuote((object)array('symbol'=>'^NZ50','QQQ','SPY'));我只得到第一个股票NZ50。

这是甚至有可能在这个网络服务获得回应超过1个tickers信息?我应该如何伪造输入?

这里是GetQuoteSoapIn元素

<s:element name="GetQuote">
<s:complexType> <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="symbol" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>

而且GetQuoteHttpGetIn

<wsdl:message name="GetQuoteHttpGetIn">
<wsdl:partname="symbol" type="s:string"/>
</wsdl:message>

回答

1

尝试这样做:

array('symbol'=>'^NZ50, QQQ, SPY') 

基础上使用,如果你输入^NZ50, QQQ, SPY(用逗号与空格隔开 - 不^NZ50,QQQ,SPYhere它返回与<symbol>数据的XML响应为3

+0

谢谢!那么它比我想象的更容易:)))) – Skyzer 2011-05-28 09:51:22

相关问题