RestTemplate之GET和POST调用和异步回调
2024-10-16 05:42:20
get方式
String url = "http://hostname:port/v1.0/data/data"; HttpHeaders headers = new HttpHeaders();
headers.set("Accept", MediaType.APPLICATION_JSON_UTF8_VALUE); UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("deviceSn", sensorAtom.getDeviceSn())
.queryParam("sensorSn", sensorAtom.getSensorSn())
.queryParam("metaData", metaData)
.queryParam("apiKey", "abdb3876-9abb-4644-91c2-8fb3d33530bd"); HttpEntity<?> entity = new HttpEntity<>(headers);
ListenableFuture<ResponseEntity<Response>> forEntity = asyncTemplate.exchange(builder.toUriString(), HttpMethod.GET, entity, Response.class); forEntity.addCallback(new ListenableFutureCallback<ResponseEntity<Response>>() {
@Override
public void onFailure(Throwable ex) {
logger.error(String.format("回调GET请求 %s 失败,%s", url, ex.getMessage()));
} @Override
public void onSuccess(ResponseEntity<Response> result) {
logger.info(String.format("回调GET请求 %s 成功,返回值为%s", url, result.getBody()));
}
});
post方式
String url = "http://hostname:port/v1.0/data/report"; HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.add("Accept", MediaType.APPLICATION_JSON_UTF8_VALUE); MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
params.add("deviceSn", sensorAtom.getDeviceSn());
params.add("sensorSn", sensorAtom.getSensorSn());
params.add("metaData", metaData);
params.add("apiKey", "abdb3876-9abb-4644-91c2-8fb3d33530bd"); HttpEntity<MultiValueMap> requestEntity = new HttpEntity<>(params, headers);
ListenableFuture<ResponseEntity<Response>> forEntity = asyncTemplate.postForEntity(url, requestEntity, Response.class); forEntity.addCallback(new ListenableFutureCallback<ResponseEntity<Response>>() {
@Override
public void onFailure(Throwable ex) {
logger.error(String.format("POST回调 %s 参数为 %s 请求失败,%s", url, JSON.toJSONString(params), ex.getMessage()));
} @Override
public void onSuccess(ResponseEntity<Response> result) {
logger.info(String.format("POST回调 %s 参数为 %s 请求成功,返回值为 %s", url, JSON.toJSONString(params), JSON.toJSONString(result.getBody())));
}
});
最新文章
- 检测cpu是否支持虚拟化和二级地址转换【转】
- 关于Autoit上传文件的问题
- EBS创建相应的用户
- 解决jQuery ajax跨域问题,Google、IE、Firefox亲测有效
- django with mysql (part-3)
- C++之路进阶——codevs2313(星际竞速)
- .bat后台运行
- linux 下使用crontab 定时打包日志并删除已被打包的日志
- Form.KeyPreview 属性2
- 数学(快速数论变换):SDOI2015 序列统计
- perl6之&#39;Hello World&#39;
- android webview点击返回键返回上一级activity
- python学习——DAY1
- Java IO面试
- Run Logic
- dedecms注入漏洞
- New UWP Community Toolkit - XAML Brushes
- ArcGis 属性表.dbf文件使用Excel打开中文乱码的解决方法
- [poj1160][IOI2000]Post Office【动态规划】
- 第一个django项目-通过命令行和pycharm两种方式
热门文章
- vue中使用axios最详细教程
- /bin/sh ./xxxxx.sh出现:“Syntax error: “(” unexpected”
- Shiro笔记(五)Shiro授权
- Ubuntu16.04+Opencv3.3的安装教程
- for循环的简介及break和continue的区别
- Spring 实现两种设计模式:工厂模式和单态模式(单例模式)
- 实现Java简单继承
- Java大数相乘-hdu1063
- rock-paper-scissors
- python &; MySQLdb(one)