springboot中使用RestTemplate发送post请求

文章讲述了如何在Spring框架中配置RestTemplate,包括添加必要依赖,创建并管理RestTemplate实例,以及使用FastJsonHttpMessageConverter进行JSON数据转换。示例展示了如何设置超时时间,构建请求参数和头信息,然后调用远程接口发送POST请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先展示目录结构

需要添加的依赖

<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());

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

攻城狮狮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值