zoukankan      html  css  js  c++  java
  • web service----查看股票走势

    接前面两个记录

    项目需要用到web service相关技术,调研过程中的实例学习记录。

    第一步:需要有股票服务的网址。。。网上自己百度

    http://www.webxml.com.cn/webservices/ChinaStockSmallImageWS.asmx

    第二步:在刚才的网址后面加?wsdl

    第三部:找到资源后,开始建立项目

    new 一个java项目,命名****_client,随意就行

    然后在src下面新建一个包   stock

     然后在命令窗口里面执行如下

    这条命令可以生成一个webservice 客户端,在解析wsdl的过程中可能有warning,只要不出现错误就可以不用管它

    编译代码结束后,查看你刚刚建立的那个stock包下面,生成了很多文件

     

     之后的工作就是调用这些文件来实现自己的需求功能

    package stock;
    
    import java.util.List;
    
    public class GetStockInfoTest {
        /**
         * 测试
         * */
        public static void main(String[] args){
            //调用股票的服务
            ChinaStockWebService service=new ChinaStockWebService();
            //创建ChinaStockWebServiceSoap对象
            ChinaStockWebServiceSoap serviceSoap=service.getChinaStockWebServiceSoap();
            //获取股票数据
            ArrayOfString array=serviceSoap.getStockInfoByCode("sz000001");
            //变量股票信息
            List<String> stockList=array.getString();
            for(String str:stockList)
            {
                System.out.println(str);
                System.out.println("********************************");
    
            }
    
    
        }
    }

     运行结果如下:

    为了更好的看看生成的那些文件的功能,再测试一下调用股票的走势图的信息

    定义一个服务的接口StockService

    package stock;
    
    /**
     * @author thf
     * 自定义服务接口
     * */
    public interface StockService {
        //显示股票的走势图
        public byte[] getStockByte(String stockCode);
    
    }

    定义实现服务接口的类

    package stock;
    /**
     * @author thf
     * 服务接口实现类
     * */
    public class StockServiceImp implements StockService {
    
        @Override
        public byte[] getStockByte(String stockCode) {
            //调用股票的服务
            ChinaStockWebService service=new ChinaStockWebService();
            //创建ChinaStockWebServiceSoap对象
            ChinaStockWebServiceSoap serviceSoap=service.getChinaStockWebServiceSoap();
    
            return serviceSoap.getStockImageByteByCode(stockCode);
        }
    }

    控制层:

    package stock;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.OutputStream;
    
    @WebServlet(name = "GetStockImageServlet ")
    public class GetStockImageServlet extends HttpServlet {
        private static final long serialVersionUID=1L;
        //new 一个服务接口实现类的对象ss
        private StockServiceImp ss=new StockServiceImp();
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request,response);
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            byte[] imgeByte=ss.getStockByte("sh601169");
            response.setHeader("content-type","image/jpeg");
            OutputStream os=response.getOutputStream();
            os.write(imgeByte);
        }
    }

    这里要映射servlet的地址哈,然后启动tomcat访问该地址

    知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得
  • 相关阅读:
    不要抱怨网速慢,只怪你自己不会调快网速
    2014年6月27日 几何和排列 答案
    我的世界杯生活
    javascript设计模式--备忘录模式(Memento)
    翻译:AngularJS应用的认证技术
    javascript设计模式--状态模式(State)
    一张思维导图说明jQuery的AJAX请求机制
    数据库设计中的14个技巧
    密室经典逃脱N部--考验你的智力!据说全球没几人走出去!不要看攻略!【工作之余也来休闲一下】
    关于编程,大学没有传授的10件事
  • 原文地址:https://www.cnblogs.com/taoHongFei/p/8953390.html
Copyright © 2011-2022 走看看