zoukankan      html  css  js  c++  java
  • RestTemplate的异步使用

    参考:https://blog.csdn.net/yezhuanxu/article/details/53643248

    支持异步调用AsyncRestTemplate

    @RequestMapping("/async")
        public String asyncReq(){
            String url = "http://localhost:8080/jsonAsync";
            ListenableFuture<ResponseEntity<JSONObject>> future = asyncRestTemplate.getForEntity(url, JSONObject.class);
            future.addCallback(new SuccessCallback<ResponseEntity<JSONObject>>() {
                public void onSuccess(ResponseEntity<JSONObject> result) {
                    System.out.println(result.getBody().toJSONString());
                }
            }, new FailureCallback() {
                public void onFailure(Throwable ex) {
                    System.out.println("onFailure:"+ex);
                }
            });
            return "this is async sample";
        }

    post请求如何自定义header

    @RequestMapping("/headerApi")//模拟远程的restful API
        public JSONObject withHeader(@RequestBody JSONObject parm, HttpServletRequest req){
            System.out.println("headerApi====="+parm.toJSONString());
            Enumeration<String> headers = req.getHeaderNames();
            JSONObject result = new JSONObject();
            while(headers.hasMoreElements()){
                String name = headers.nextElement();
                System.out.println("["+name+"]="+req.getHeader(name));
                result.put(name, req.getHeader(name));
            }
            result.put("descp", "this is from header");
            return result;
        }
    
        @RequestMapping("/header")
        public Object postWithHeader(){
        //该方法通过restTemplate请求远程restfulAPI
            HttpHeaders headers = new HttpHeaders();
            headers.set("auth_token", "asdfgh");
            headers.set("Other-Header", "othervalue");
            headers.setContentType(MediaType.APPLICATION_JSON);
            
            JSONObject parm = new JSONObject();
            parm.put("parm", "1234");
            HttpEntity<JSONObject> entity = new HttpEntity<JSONObject>(parm, headers);
            HttpEntity<String> response = restTemplate.exchange(
                    "http://localhost:8080/headerApi", HttpMethod.POST, entity, String.class);//这里放JSONObject, String 都可以。因为JSONObject返回的时候其实也就是string
            return response.getBody();
        }
    View Code
  • 相关阅读:
    SQL查询SP代码
    MS SQL Server:查询死锁进程(转载)
    批编译、重新编译和计划缓存
    sql like获取以逗号分割的字段内的数据
    SQL Server 2005—数据库管理10个最重要的特点(转载)
    SQL2005数据库镜像配置脚本
    转:SQL 语句优化
    转:SQL SERVER什么时候写日志
    MDX查询几个经典示例
    尾日志备份和时间点还原
  • 原文地址:https://www.cnblogs.com/lshan/p/10375232.html
Copyright © 2011-2022 走看看