Java发送http请求接口-RestTemplate

Spring-发送Http请求-RestTemplate

RestTemplate是由Spring用于同步client端的核心类,简化了与http服务的通信,统一了RESTFul的标准,封装了http连接,我们只需要传入url及其返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更为优雅的调用RESTFul服务的方式。

1.Maven引入

pom.xml配置项

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-web</artifactId>
	<version>5.3.22</version>
</dependency>

2.代码展示

发送请求工具类



import com.alibaba.fastjson.JSONObject;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

import javax.annotation.PostConstruct;

public class HttpUtil {
    RestTemplate restTemplate = null;

    @PostConstruct
    public void before() {
        HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
        //设置连接超时时间
        requestFactory.setConnectTimeout(10000);
        //设置读取超时时间
        requestFactory.setReadTimeout(10000);
        restTemplate = new RestTemplate(requestFactory);
    }


 	//post请求
    public JSONObject doPostForm(String urlPath, Map<String,String> body) {
        //  一定要设置header
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<?> request = new HttpEntity<Object>(bodyObject, headers);
        ResponseEntity<String> entity = restTemplate.postForEntity(urlPath, request, String.class);
        return JSONObject.parseObject(entity.getBody());
    }
    
	//Get请求
    public String doGetString(String urlPath) {
        HttpHeaders headers = new HttpHeaders();
        HttpEntity<String> entity = new HttpEntity<>(headers);
        ResponseEntity<String> exchange = restTemplate.exchange(urlPath, HttpMethod.GET, entity, String.class);
        return exchange.getBody();
    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java RestTemplateSpring Framework 提供的一个用于访问 REST 服务的客户端工具类。它简化了与 RESTful Web 服务的通信,可以发送 GET、POST、PUT、DELETE 请求等,并支持通过多种方式传递参数和请求体。使用 RestTemplate 发送 HTTP 请求时,可以使用 Spring 提供的 MessageConverter 将请求和响应转换为相应的 Java 对象,从而方便处理返回的 JSON/XML 数据。 RestTemplate 的使用非常简单,只需要实例化一个 RestTemplate 对象,然后使用该对象的方法来发送请求即可。例如,可以使用 RestTemplate 的 getForObject() 方法发送 GET 请求并返回响应体: ```java RestTemplate restTemplate = new RestTemplate(); String url = "http://example.com/api/resource"; String response = restTemplate.getForObject(url, String.class); ``` 除了 getForObject() 方法,还有 postForObject()、put()、delete() 等方法可供使用。 如果需要传递参数,可以将参数封装为一个 Map 对象,然后将其传递给方法。例如,可以使用 RestTemplate 的 postForObject() 方法发送 POST 请求并传递参数: ```java RestTemplate restTemplate = new RestTemplate(); String url = "http://example.com/api/resource"; MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); params.add("param1", "value1"); params.add("param2", "value2"); String response = restTemplate.postForObject(url, params, String.class); ``` 以上就是 Java RestTemplate 的基本介绍和使用方法。如有需要,可以参考 Spring 官方文档进一步了解该工具类的更多特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值