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
  • 相关阅读:
    tomcat work 目录
    上传图片预览 支持IE8+,FF,Chrome ,保留原图片比例
    设计模式学习笔记-观察者模式
    jcarousellite 实现图片列表滚动
    linux一些常用命令
    http&https&证书&数字签名
    醉笑陪君三万场 不诉离伤
    笔记本光驱位安装固态硬盘及window系统一些过程记录
    linux 添加定时任务脚本
    设置 SSH 免密码登陆——仍提示输入密码
  • 原文地址:https://www.cnblogs.com/lshan/p/10375232.html
Copyright © 2011-2022 走看看