springboot中RestTemplate

问题:我们在使用了rpc和feign之后很少用到调用别人接口,但是总有那么不合群的不用我们伟大的springboot,这时候调用别人的接口就需要RestTemplate。

1.并不需要引入meaven包,因为springboot集成了

2.调用分为get和post请求,我们分开讲

2.1首先get请求,直接上代码

       String url ="http://baidu.com";
        //新建一个对象
		RestTemplate client = new RestTemplate();
		HttpHeaders headers = new HttpHeaders();//为了防止需要一些数据放到请求头的
		HttpMethod method = HttpMethod.GET;
		// 提交方式,以json的方式提交
		headers.setContentType(MediaType.APPLICATION_JSON);
		Params params=geturlToken();//获取token
		String token=params.getToken();
				
          //设置请求头的数据
		headers.add("x-device-id", "**");
		headers.add("Authorization", "Bearer " + token);
		//将请求头部和参数合成一个请求
		HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(null, headers);

		//执行HTTP请求,将返回的结构使用String 类格式化,response 就是返回的数据
		ResponseEntity<String> response = client.exchange(url, method, requestEntity, String.class);
		
		

2.2post请求带参数,参数为json格式

 

String url="http://baidu";
    	String token="";
		RestTemplate restTemplate = new RestTemplate();
		//设置Http Header
		HttpHeaders headers = new HttpHeaders();
		HttpMethod method = HttpMethod.POST;//设置请求方式为post请求
		//设置请求媒体数据类型我这个不需要
		//headers.setContentType(MediaType.APPLICATION_JSON);
        //添加在请求头上的数据
		headers.add("x-device-id", "**");
		//设置返回媒体数据类型
	   //	headers.add("Accept", MediaType.APPLICATION_JSON.toString());
		//设置参数
		MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
		map.add("mobile","  aaa");
		map.add("password","aaa");
		map.add("nation_code","86");
//将请求头部和参数合成一个请求
		HttpEntity<MultiValueMap<String, String>> formEntity = new HttpEntity<MultiValueMap<String, String>>(map, headers);
        //执行HTTP请求,将返回的结构使用String 类格式化
		ResponseEntity<String> response = restTemplate.exchange(url, method, formEntity, String.class);


		String jsonObject = JSONObject.parseObject(response.getBody()).getJSONObject("res").getString("token");

注意事项:添加参数map是add方法,不是put,不然会导致传参不成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值