Springboot-用更优雅的方式发HTTP请求(RestTemplate实例)

  1. 配置文件
    import java.nio.charset.StandardCharsets;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.client.ClientHttpRequestFactory;
    import org.springframework.http.client.SimpleClientHttpRequestFactory;
    import org.springframework.http.converter.StringHttpMessageConverter;
    import org.springframework.web.client.RestTemplate;
    
    /**
     * @author: nql
     * @Description:配置项
     * @date:  
     */
    
    @Configuration
    public class RestTemplateConfig {
        @Bean
        public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
            RestTemplate restTemplate = new RestTemplate(factory);
            // 解决中文乱码
            restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
            return restTemplate;
        }
    
        @Bean
        public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
            SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
            factory.setConnectTimeout(15000);
            factory.setReadTimeout(5000);
            return factory;
        }
    }

2.调用实例

    Map<String, Object> queryMap = new HashMap<>();
        queryMap.put("key", value); 
        ResponseEntity<String> results = restTemplate.getForEntity(url, String.class, queryMap);
        // josn转换
        List<Map> resultList = JSON.parseArray(JSONObject.fromObject(results.getBody()).get("结果项").toString(),Map.class);

 

Spring Boot提供了RestTemplate类来HTTP请求。要使用RestTemplate请求,请按照以下步骤进行操作: 1. 首先,您需要在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 2. 在您的类中,您需要通过注入RestTemplate来使用它。您可以通过使用@Bean注解创建一个RestTemplate实例: ```java @Bean public RestTemplate restTemplate() { return new RestTemplate(); } ``` 3. 然后,您可以使用RestTemplate实例HTTP请求。例如,要送GET请求,请使用以下代码: ```java RestTemplate restTemplate = new RestTemplate(); String url = "https://jsonplaceholder.typicode.com/posts/1"; String result = restTemplate.getForObject(url, String.class); System.out.println(result); ``` 4. 您可以使用exchange()方法来送其他类型的HTTP请求,例如POST,PUT,DELETE等。以下是送POST请求的示例: ```java RestTemplate restTemplate = new RestTemplate(); String url = "https://jsonplaceholder.typicode.com/posts"; HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); Map<String, String> params = new HashMap<String, String>(); params.put("title", "foo"); params.put("body", "bar"); HttpEntity<Map<String, String>> requestEntity = new HttpEntity<>(params, headers); ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class); System.out.println(response.getBody()); ``` 这样,您就可以使用RestTemplateHTTP请求了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值