springboot 请求http://api.farm.0531yun.cn/api/v2.0/entrance/device/getRealTimeData?deviceAddrs=40330317,header传递token=71891727756151582
时间: 2024-10-01 14:09:50 浏览: 24
幸福感分析-机器学习项目 https://tianchi.aliyun.com/competition/entrance/231
Spring Boot 中请求HTTP资源通常通过`RestTemplate`、`Feign`或者使用Spring Web的`@RestController`和`@GetMapping`注解来实现。在这个例子中,您想要从`api.farm.0531yun.cn` API 获取实时数据,参数包括`deviceAddrs=40330317`,并且需要将`header`中的`token`设置为`71891727756151582`。
首先,你需要一个发送HTTP请求的类,比如使用`RestTemplate`:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
public class DeviceApiCaller {
private final RestTemplate restTemplate;
@Value("${your.token.header.name}")
private String tokenHeaderName;
public DeviceApiCaller(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public ResponseEntity<String> getRealTimeData(@Value("${deviceAddrs}") String deviceAddrs) {
HttpHeaders headers = new HttpHeaders();
headers.set(tokenHeaderName, "71891727756151582");
return restTemplate.getForEntity("http://api.farm.0531yun.cn/api/v2.0/entrance/device/getRealTimeData", String.class, deviceAddrs, headers);
}
}
```
这里假设`your.token.header.name`是一个应用配置的属性,用于指定`token`头的名称。然后,你可以通过创建`DeviceApiCaller`实例并调用`getRealTimeData`方法来获取数据。
阅读全文