springboot中使用RestTemplate发送post请求

首先展示目录结构

需要添加的依赖

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-web</artifactId>
</dependency>
<dependency>
   <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient</artifactId>
</dependency>

配置Config文件,因为没有RestTemplate需要手动创建,交给IOC容器管理,这样在使用的时候只需要@Autowired这样用就行了

@Autowired
private RestTemplate restTemplate;
package com.ke.alarmdeal.config;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
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.HttpMessageConverter;
import org.springframework.web.client.RestTemplate;

import java.nio.charset.Charset;

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory){
        RestTemplate restTemplate = new RestTemplate(factory);
        //HttpMessageConverter,报文信息转换器。
//         添加FastJson转换器
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        fastConverter.setDefaultCharset(Charset.forName("UTF-8"));
        HttpMessageConverter<?> converter = fastConverter;
        restTemplate.getMessageConverters().add(converter);
        return restTemplate;
    }

    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(15000);
        factory.setReadTimeout(5000);
        return factory;
    }
}

具体使用方法

public class AutoDealAlarmServiceImpl{
    public void sendToDeal(List<MEdTripPlatform> alarmList){
//        MultiValueMap<String,Object> params = new LinkedMultiValueMap<>();
//        params.addAll("alarmItemList", alarmList);
//        params.add("alarmType",2);
//        params.add("optType",2);
//        params.add("optDesc","自动处理");
        //这里使用jsonObject来发送参数,因为接口用的是@RequestBody来接受
        JSONObject param = new JSONObject();
        param.put("alarmItemList", alarmList);
        param.put("alarmType", 2);
        param.put("optType", 2);
        param.put("optDesc", "自动处理");
        //添加token
        HttpHeaders headers = new HttpHeaders();
        headers.add("authtoken",token);
        headers.add("Content-Type","application/json;charset=UTF-8");
//        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        //封装请求头
        HttpEntity<String> formEntity = new HttpEntity<String>(param.toString(),headers);

        String url = "http://192.168.3.135:8888/getData";
        ResponseEntity<JSONObject> response2 =  restTemplate.postForEntity(url,formEntity, JSONObject.class);
        log.info("response2--->{}",response2.getBody());

    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
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()); ``` 这样,您就可以使用RestTemplate发送HTTP请求了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

攻城狮狮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值