RestTemplateUtil

都可以的请求方式:

HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer");
HttpEntity entity = new HttpEntity(body.toString() , headers);
ResponseEntity<Object> responseEntity = restTemplate.postForEntity("http://a1/users/{username}/password", entity, null, username);
return responseEntity.getStatusCodeValue() == 200;

自定义工具类

import com.alibaba.fastjson.JSONObject;
import org.springframework.http.*;
import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
/**
* @author Eangaie
* @date 2018/10/12 0012 下午 14:53
* 网络请求,RestTemplate工具类
*/
@Component
public class RestTemplateUtil {
	private RestTemplate restTemplate;
	/**
* 发送GET请求-表单形式
* @param url
* @param param
* @return
*/
	public String GetData(String url, Map<String,String> param){
		restTemplate=new RestTemplate();
		// 请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
		return restTemplate.getForEntity(url,String.class,param).getBody();
	}

	/**
* 发送GET请求-带有请求头的
* @param url
* @param param
* @return
*/
	public String GetData(String url, Map<String,String> param){
		HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
        headers.set("Authorization", "Bearer "+token);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<JSONObject> requestEntity = new HttpEntity<JSONObject>(null, headers);
        return restTemplate.exchange(url,HttpMethod.GET,requestEntity, String.class).getBody();
	}

	/**
* 发送POST-JSON请求
* @param url
* @param param
* @return
*/
	public String PostJsonData(String url,JSONObject param){
		restTemplate=new RestTemplate();
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
		headers.add("Accept", MediaType.APPLICATION_JSON.toString());
		HttpEntity<JSONObject> requestEntity = new HttpEntity<JSONObject>(param, headers);
		return restTemplate.postForEntity(url,requestEntity ,String.class).getBody();  // String.class 控制着返回的结果
	}



/**
     * 发送带有Authorization-Bearer token请求头的POST-JSON请求
     * @param url
     * @param param
     * @param token
     * @return
     */
    public JSONObject PostJsonData(String url,JSONObject param, String token){
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
        headers.set("Authorization", "Bearer "+token);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        HttpEntity<JSONObject> requestEntity = new HttpEntity<JSONObject>(param, headers);
        return restTemplate.postForEntity(url,requestEntity,JSONObject.class).getBody();
    }
    
	/**
* 发送POST 表单请求
* @param url
* @param param
* @return
*/
	public String PostFormData(String url,MultiValueMap<String,String> param){
		restTemplate=new RestTemplate();
		// 请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
		return restTemplate.postForEntity(url,param,String.class).getBody();
	}
	
	  /**
     * 带mlyToken请求,支持get/post等
     *
     * @param url
     * @param method
     * @param paramsMap
     * @param mlyToken
     * @return
     */
    public static String exchangeWithToken(String url, HttpMethod method, Map<String, Object> paramsMap, String mlyToken) {
        HttpHeaders headers = new HttpHeaders();
        headers.add("Authorization", mlyToken);
        ResponseEntity response;
        if(HttpMethod.POST == method){
            String json = MyUtil.getJsonString(paramsMap);
            headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
            HttpEntity httpEntity = new HttpEntity<>(json, headers);
            response = TEMPLATE.postForEntity(url, httpEntity, String.class);
        }else if (HttpMethod.PUT == method){
            String json = MyUtil.getJsonString(paramsMap);
            headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
            HttpEntity httpEntity = new HttpEntity<>(json, headers);
            response = TEMPLATE.exchange(url, method, httpEntity, String.class, paramsMap);
        }else{
            HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(null, headers);
            response = TEMPLATE.exchange(url, method, httpEntity, String.class, paramsMap);
        }
        logger.info("RestTemplate请求result:" + response.getBody());
        return response.getBody().toString();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: RestTemplateUtil是一个用于简化使用RestTemplate发送HTTP请求的工具类。在Java中,RestTemplate是一个常用的HTTP请求发送工具,用来进行与远程HTTP服务的通信。但是,使用RestTemplate发送请求需要编写大量的重复代码,如设置请求头、设置请求参数、处理响应等。为了简化开发人员的工作,RestTemplateUtil封装了一些常用的操作,提供了更加简洁、易用的接口。 RestTemplateUtil可以通过一行代码完成HTTP GET请求、POST请求、PUT请求、DELETE请求等常见的操作。只需要传入目标请求的URL、请求体和请求头等参数,即可自动构建HTTP请求并发送给远程服务。返回结果也可以是自定义的Java对象,RestTemplateUtil会自动将响应的JSON数据转换为该对象。 此外,RestTemplateUtil还提供了异常处理功能,当发送请求时出现异常时,可以通过异常处理器对异常进行处理,并进行重试操作。这可以确保请求的可靠性,减少因网络等原因导致请求失败的情况。 使用RestTemplateUtil可以大大简化HTTP请求的代码编写工作,提高开发效率。同时,由于RestTemplateUtil封装了常用的功能,也避免了重复造轮子的问题,减少了代码中的冗余。 总之,RestTemplateUtil是一个简化使用RestTemplate发送HTTP请求的工具类,通过封装一些常用的操作,提供了更加简洁、易用的接口,方便开发人员进行HTTP请求的发送和处理。 ### 回答2: RestTemplateUtil是一个封装了RestTemplate的工具类。RestTemplate是Spring Framework提供的用于发送RESTful请求的HTTP客户端,可以与各种后端服务进行通信。 RestTemplateUtil的作用在于简化RestTemplate的使用,并提供一些常用的请求方法和功能。它封装了RestTemplate的初始化、请求发送、请求参数设置、响应处理等一系列操作,让开发者可以更方便地发送HTTP请求并处理响应。 使用RestTemplateUtil可以通过简洁的代码实现HTTP请求的发送和结果的处理。通过在代码中引入RestTemplateUtil类并调用其中的方法,可以直接发送GET、POST、PUT等RESTful请求,设置请求参数、请求头和请求体,并获取服务端返回的结果。 RestTemplateUtil还提供了拦截器的添加和自定义错误处理的功能。通过添加拦截器,可以在发送请求的过程中对请求和响应进行拦截和修改,实现一些自定义的需求。自定义错误处理功能可以对请求异常和错误进行处理,以便更好地处理错误情况。 综上所述,RestTemplateUtil是一个封装了RestTemplate的工具类,用于简化RestTemplate的使用,提供了方便的请求发送和响应处理功能,以及拦截器和错误处理功能。使用RestTemplateUtil可以更方便地进行RESTful请求的发送和结果处理,提高开发效率。 ### 回答3: RestTemplateUtil是一个针对RestTemplate的封装工具类,用于简化使用RestTemplate进行HTTP通信的操作。 RestTemplate是Spring提供的一个HTTP客户端工具,可以用于发送HTTP请求并接收响应。但是,使用RestTemplate进行HTTP通信可能会涉及到很多重复的操作,例如设置请求头、处理响应等。为了减少这些重复的操作,可以使用RestTemplateUtilRestTemplateUtil封装了一些常用的方法,包括发送GET、POST、PUT和DELETE请求。通过调用这些方法,我们只需要传入请求的URL、请求体、请求头等参数,就能够方便地进行HTTP通信。 此外,RestTemplateUtil还提供了一些辅助方法,例如可以设置请求的超时时间、设置请求的编码方式等。通过这些辅助方法,我们可以更灵活地控制HTTP通信的细节。 使用RestTemplateUtil的好处包括: 1. 简化了使用RestTemplate的操作,减少了重复的代码; 2. 提高了开发效率,使得开发人员可以更专注于业务逻辑的实现; 3. 方便了对HTTP通信的控制,可以灵活地设置请求的参数和处理响应; 4. 可以轻松实现对Restful API的调用,简化了接口对接的过程。 综上所述,RestTemplateUtil是一个简化了使用RestTemplate进行HTTP通信的工具类,可以减少重复的操作,提高开发效率,简化接口对接的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LC超人在良家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值