2022年春节前夕

新浪获取股票实时行情接口,获取数据进行调整。

请求:http://hq.sinajs.cn/list

调用返回:Kinsoku jikou desu!

以下为最新获取方法(Java):

        HtmlPage htmlPage;
		URL urlTabBet = null;
		String URL = "http://hq.sinajs.cn/list=sh601500";
		WebRequest webRequest;
		WebClient webClient = new WebClient(BrowserVersion.CHROME);
		webClient = new WebClient(BrowserVersion.CHROME);
		webClient.setCssErrorHandler(new SilentCssErrorHandler());
		webClient.setAjaxController(new NicelyResynchronizingAjaxController());
		webClient.getOptions().setJavaScriptEnabled(true);
		webClient.getOptions().setActiveXNative(false);
		webClient.getOptions().setCssEnabled(false);
		webClient.getOptions().setTimeout(120 * 1000);
		webClient.getOptions().setThrowExceptionOnScriptError(false);
		webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
		webClient.getOptions().setRedirectEnabled(true);
		webClient.getCookieManager().setCookiesEnabled(true);

		try {
			urlTabBet = new URL(URL);
		} catch (MalformedURLException e1) {
			e1.printStackTrace();
		}
		webRequest = new WebRequest(urlTabBet, com.gargoylesoftware.htmlunit.HttpMethod.POST);
		Map<String, String> additionalHeaders = new HashMap<String, String>();
		additionalHeaders.put("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36");
		additionalHeaders.put("Accept-Language", "zh-CN,zh;q=0.8");
		additionalHeaders.put("Accept", "*/*");
		additionalHeaders.put("referer", "http://finance.sina.com.cn");
		webRequest.setAdditionalHeaders(additionalHeaders);
		
		try {
			htmlPage = webClient.getPage(webRequest);
            String contentAsString = htmlPage.getWebResponse().getContentAsString();
            //以下自行数据处理
		} catch (FailingHttpStatusCodeException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}


请求太快会超时报错,请自行处理好异常重试。

返回报文结构:

var hq_str_sh601500="通用股份,5.050,5.060,5.090,5.110,5.030,5.090,5.100,3963000,20106078.000,52800,5.090,90600,5.080,98500,5.070,105200,5.060,127900,5.050,104400,5.100,99700,5.110,111800,5.120,87500,5.130,73300,5.140,2022-02-14,11:18:56,00,"
 

字段说明:

var hq_str_sh601500="
0:    通用股份    //名字;
1:    5.050       //今日开盘价
2:    5.060       //昨日收盘价
3:    5.090       //当前价格
4:    5.110       //今日最高价
5:    5.030       //今日最低价
6:    5.090       //竞买价,即“买一”报价;
7:    5.100       //竞卖价,即“卖一”报价;
8:    3963000     //成交的股票数,转手乘100
9:    20106078.000//成交金额(元),转万除10000
10:    52800       //“买一”申请52800股
11:    5.090       //“买一”报价;
12:    90600       //“买二”申请90600股
13:    5.080       //“买二”报价;
14:    98500       //..
15:    5.070       //..
16:    105200      //..
17:    5.060       //..
18:    127900      //..
19:    5.050       //..
20:    104400      //“卖一”申报104400股
21:    5.100       //“卖一”报价;
22:    99700       //“卖二”申报99700股
23:    5.110       //“卖二”报价;
24:    111800      //..
25:    5.120       //..
26:    87500       //..
27:    5.130       //..
28:    73300       //..
29:    5.140       //..
30:    2022-02-14  //日期
31:  11:18:56   //时间

涨跌金额和涨跌幅度计算代码片段:

Double amt_change = getDouble(Double.valueOf(split[3]) - Double.valueOf(split[2]));//涨跌金额(元)

Double pct_change = getDouble(amt_change / Double.valueOf(split[2]) * 100);//涨跌幅度%


private static double getDouble(Double d) {
		return new BigDecimal(d).setScale(2, RoundingMode.HALF_UP).doubleValue();
	}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐