我可以向此Web服务请求发送多个值

时间:2011-05-28 09:35:16

标签: php web-services soap

这是WSDL http://www.webservicex.net/stockquote.asmx?WSDL

我正在尝试获得超过1股的回应。是否可以在此Web服务中使用?
Web服务需要1个参数,即Symbol。所以插入1个符号的代码是

  

$ wsdl =   “http://www.webservicex.net/stockquote.asmx?WSDL”;   // wsdl
  $ client = new   SoapClient的($ WSDL);
  $ quote =   $客户端 - >为getQuote((对象)阵列( '符号'=> 'SPY'));
  后续代码var_dump($报价);
  echo $ quote-&gt; 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'));,我只得到第一个自动收录机。

甚至可以在此网络服务中获得超过1个代码信息的回复吗?我应该如何打造输入?

这是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 个答案:

答案 0 :(得分:1)

尝试这样做:

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

根据使用情况here,如果您输入^NZ50, QQQ, SPY(用逗号分隔空格而不是^NZ50,QQQ,SPY),则会返回带有<symbol>数据的XML响应