RestTemplate使用

今天在做  今日指数 项目 时 需要获得实时股票数据,在项目中

当前我们的数据库中的股票数据都是伪造出来的,实际上项目中的股票数据需要借助第三方接口实时拉取;
Spring框架已为我们封装了一套后端访问http接口的模板工具:RestTemplate。
RestTemplate非常轻量级,使用简单易上手。

使用resttmeplate 对指定网站进行 发起post请求 或者其他请求 获取数据  

 1首先 在 配置一个 HttpConfig 配置类 在里面定义一个Bean用于让Spring 管理RestTemplate。

@Configuration
public class HttpClientConfig {
    /**
     * 定义restTemplate bean
     * @return
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

2定义需要请求网站的 Url地址

         

String url ="http://hq.sinajs.cn/list=s_sh000001,s_sz399001"

3设置请求头信息

Referer : 参数是 为了配置 从何处进行的资源访问 初始地址

User-Agent : 参数是为了告诉后端 我只是一个普通的 浏览器浏览而已

如果不知道怎么写的 话 可以使用Postman 测试工具 进行一个访问 他会自动生成

只需要复制即可

 //设置请求头信息
        HttpHeaders headers = new HttpHeaders();
        headers.add("Referer","https://finance.sina.com.cn/stock/");
        headers.add("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36");

4 发起Post 请求 将请求之后的结果进行保存

//发起请求
String result = restTemplate.postForObject(innerUrl, new HttpEntity<>(headers), String.class);

5 对于获取之后 的数据进行 截取

可以使用String提供的split 或者sub进行截取  

或者使用正则表达式进行截取,此方法简单易上手 ,下面介绍如何快速截取需要的内容

假如 返回的数据为

var hq_str_s_sz399001="深证成指,10793.93,71.053,0.66,408492315,57634880";

我们需要的数据可能为

var hq_str_s_sz399001="深证成指,10793.93,71.053,0.66,408492315,57634880";

比如说这俩

我们只需要将其 复制粘贴过来 将 对应需要的模块加上 ()进行匹配即可

  reg = "var hq_str_(.+)=(.+)"

如上所示,但是需要注意里面包含的字符串可能存在转义字符。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值