【笔记】使用RestTemplate发送http请求

		RestTemplate restTemplate=new RestTemplate();
		List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters();
        converterList.remove(1); // 移除原来的转换器
        // 设置字符编码为utf-8
        HttpMessageConverter<?> converter = new StringHttpMessageConverter(StandardCharsets.UTF_8);
        converterList.add(1, converter); // 添加新的转换器(注:convert顺序错误会导致失败)
        restTemplate.setMessageConverters(converterList);

        //计算signature值
        String timestamp=String.valueOf(Math.round(System.currentTimeMillis()/1000));
        String nonce=CitySyncDataUtil.getRandomString(16);
        String signature= CitySyncDataUtil.getSHA256StrJava(timestamp+token+nonce+timestamp).toUpperCase();


        // -------------------------------> (选择性设置)请求头信息
        // HttpHeaders实现了MultiValueMap接口
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.add("Content-Type", "application/json");
   

        // -------------------------------> 注:GET请求 创建HttpEntity时,请求体传入null即可
        // 请求体的类型任选即可;只要保证 请求体 的类型与HttpEntity类的泛型保持一致即可
        String httpBody = null;
        HttpEntity<String> httpEntity = new HttpEntity<String>(httpBody, httpHeaders);

        // -------------------------------> URI
        StringBuffer paramsURL = new StringBuffer("http://127.0.0.1?method={0}&request={1}");

        //  -------------------------------> 执行请求并返回结果
        // 此处的泛型  对应 响应体数据   类型;即:这里指定响应体的数据装配为String
        //通过在exchange替换url请求参数的内容,可以避免特殊字符引起的问题
        ResponseEntity<String> response =
                restTemplate.exchange(paramsURL.toString(), HttpMethod.GET, httpEntity, String.class,method,request);

        // -------------------------------> 响应信息
        //响应码,如:401、302、404、500、200等


        int statusCode=response.getStatusCodeValue();

        //请求成功
        if(200==statusCode && response.hasBody() && null!=response.getBody()){
        	System.out.println("请求成功");       
        }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值