这一天做了一个调用新浪股票接口获得即时或者历史股票数据的应用,因为新浪没有公开关于其接口的官网文档,所以借助各类百度差了好多关于网易股票接口的使用,不过你们基本都是转载或者直接复制,对于即时数据的获得讲的太具体,但是缺乏获得历史数据的方式。
关于实时数据的获得各位可以看那篇博客:实时股票数据接口
经过不懈的尽力终于再那篇博文中找到了关于新浪股票历史数据的获得方法腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据
最近二十天左右的每5分钟数据
;scale=5&ma=5&datalen=1023
、均值(5、10、15、20、25)、查询个数点(最大值242))
获取的数据是类似上面的json字符:日期、开盘价、最高价、最低价、收盘价、成交量:

获取的数据会有很多正规股票配资平台,然后按照自己应该进行解读,我需要的是一天的收盘价,股市是每个工作日下午3点收盘,所以我只应该找到经常的下午三点时刻的数据进行过滤即可:
1、新建一个历史数据对象类:
public class HistoryModel {public String day;
public String close;
public HistoryModel(String day, String close) {
this.day = day;
this.close = close;
}
}
2、新建一个股票多次历史数据类:和下一个区别就是,这里包括的是所有的历史数据:参数包含股票名字、代码、现在的价格、历史数据:
public class HistoryModels {public String name;
public String code;
public String now;
public List
public HistoryModels(String name, String code, String now, List
this.name = name;
this.code = code;
this.now = now;
this.list = list;
}
}
3、将必须查询的股票的代码带进url里通过HTTP请求json数据,我此处用的Volley请求的:
其中将时间点已15:00:00的数据过滤出来,组合乘List之后在全部赋值组合成一个HistoryModels存放股票信息或者股票的所有历史数据。
// Instantiate the requestqueue.RequestQueue queue = Volley.newRequestQueue(Home.context);
// Request a string response from the provided URL.
StringRequest stringRequest1 = new StringRequest(Request.Method.GET, url1,
new Response.Listener
@Override
public void onResponse(String response) {
List
- >() {
}.getType());
List
if(historyList!=null) {
for (int j = 0; j < historyList.size(); j++) {
if (historyList.get(j).day.split(" ")[1].equals("15:00:00")) {
historyList2.add(historyList.get(j));
}
}
}
HistoryModels model = new HistoryModels(Home.myChoiceModelList.get(ii).name, Home.myChoiceModelList.get(ii).code, Home.myChoiceModelList.get(ii).now, historyList2);
cllList.add(model);
message msg = new Message();
msg.what = 0x002;
handler.sendMessage(msg);
}
},
new Response.ERRORListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
queue.add(stringRequest1);