基于Java Web服务(Webservices)接口获取实时股票(Stock)交易代码实例

下面的代码是作者原创,转载请注明出处。

 

package stock;

import java.net.URL;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

public class SoapClient {
 
 private static DecimalFormat df = new DecimalFormat("00.0000");
 
 private static void printDetail(final String[] array) {
  System.out.println("股票代号: /t" + array[0]);
  System.out.println("股票名称: /t" + array[1]);
  System.out.println("行情时间: /t" + array[2]);
  System.out.println("最新价(元): /t" + array[3]);
  System.out.println("今开盘(元): /t" + array[4]);
  System.out.println("涨跌额(元): /t" + array[4]);
  System.out.println("行情时间: /t" + array[6]);
  System.out.println("最低(元): /t" + array[7]);
  System.out.println("最高(元): /t" + array[8]);
  System.out.println("涨跌幅(%): /t" + array[9]);
  System.out.println("成交量(手): /t" + array[10]);
  System.out.println("成交额(万元): /t" + array[11]);
  System.out.println("竞买价(元): /t" + array[12]);
  System.out.println("竞卖价(元): /t" + array[13]);
  System.out.println("委比(%): /t" + array[14]);
  System.out.println("卖五(元)/手: /t" + array[24]);
  System.out.println("卖四(元)/手: /t" + array[23]);
  System.out.println("卖三(元)/手: /t" + array[22]);
  System.out.println("卖二(元)/手: /t" + array[21]);
  System.out.println("卖一(元)/手: /t" + array[20]);
  System.out.println("---------------------------------");
  System.out.println("买一(元)/手: /t" + array[15]);
  System.out.println("买二(元)/手: /t" + array[16]);
  System.out.println("买三(元)/手: /t" + array[17]);
  System.out.println("买四(元)/手: /t" + array[18]);
  System.out.println("买五(元)/手: /t" + array[19]);
 }
 
 private static void printSummary(final String[] array) {
  System.out.println(array[0]
          + "/t" + df.format(Double.parseDouble(array[3]))
          + "/t" + df.format(Double.parseDouble(array[7]))
          + "/t" + df.format(Double.parseDouble(array[8]))
          + "/t" + String.format("%10s", new Object[]{array[9]})
          + "/t" + String.format("%10s", new Object[]{array[14]}));
 }
 
 private static String[] getRealTimeData(final String id) throws Exception {
  String endpoint = "http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx";
  
  Service service = new Service();
  
  Call call = (Call)service.createCall();
  
  call.setTargetEndpointAddress(new URL(endpoint));
  call.setOperationName(new QName("http://WebXml.com.cn/", "getStockInfoByCode"));
  
  call.setUseSOAPAction(true);
  call.setSOAPActionURI("http://WebXml.com.cn/getStockInfoByCode");
  
  call.addParameter(new QName("http://WebXml.com.cn/","theStockCode"), XMLType.XSD_STRING, ParameterMode.IN);
  call.setReturnType(new QName("<A href="http://WebXml.com.cn/","getStockInfoByCodeResponse"),String[].class">http://WebXml.com.cn/","getStockInfoByCodeResponse"),String[].class);
  
  return (String[])call.invoke(new Object[]{id});
 }
 
 public static void main(String[] args) throws Exception {
  String[] stockCodes = {
    "sh600028",
    "sh500006",
    "sz184692",
  };
  
  List stockInfos = new ArrayList();
  
  for(int i=0; i<stockCodes.length; i++) {
   stockInfos.add(getRealTimeData(stockCodes[i]));
  }
  
  for(int i=0; i<stockInfos.size(); i++) {
   printSummary((String[])stockInfos.get(i));
  }
  
  for(int i=0; i<stockInfos.size(); i++) {
   printDetail((String[])stockInfos.get(i));
  }

 }
 

}

 

  

如果还有其它问题可以通过本站联系作者。

 

 

你可能感兴趣的:(java,exception,object,String,service,web服务)