RestTemplate调用rest接口

RestTemplate调用rest接口

应用层:HTTP
传输层:TCP(传输控制协议) 保证通信数据有序可靠 端口号:80
网络层:IP地址 DNS域名服务器解析域名
数据链路层&物理层:完成数据传输

一次http请求的过程:
1,域名解析为ip地址
2,向服务器ip+端口号建立TCP连接 连接成功
3,发送http请求,并得到响应
4,浏览器渲染并展示HTML

URL的组成http://www.example.com/
http: schema协议 可以省略(浏览器默认的)
域名后面可以跟端口号,默认80可以省略。
最后的斜杠表示服务器根路径下的资源。

报文含义参考RFC文档。

RestTemplate调用rest接口

首先需要注入resttemplate,建立一个config文件:
1:Apache HttpComponents (httpclient)
2:Netty(网络通信库)
3:OkHttp

//通过构造方法更换底层的执行引擎。
return new RestTemplate();//默认是jdk的HttpUrlConnection;
return new RestTemplate(new HttpComponentsClientHttpRequestFactory());//这个是httpclient,需要导入依赖。
@Configuration
public class RestTemplateConfig {
   

        @Autowired
        private RestTemplateBuilder restTemplateBuilder;

        @Bean
        public RestTemplate restTemplate() {
   

            return restTemplateBuilder.setConnectTimeout(Duration.ofSeconds(120000))
                    .setReadTimeout(Duration.ofSeconds(150000)).build();
            
        }
}

1:采用restTemplate.postForEntity直接处理string格式的json字符串:

public void sendMailByCM01(){
   
    String data = "{\n" +
            "    \"receivers\":\"10256056\",\n" +
            "    \"subject\":\"测试配置平台邮件\",\n" +
            "    \"mailMsg\":\"三月二十九日天气晴朗。\",\n" +
            "    \"mailType\": \"text\"\n" +
            "}";
            
    String url = "http://10.7.224.163:8888/mail";
    ResponseEntity<String> objectResponseEntity = restTemplate.postForEntity(url, data, String.class);
    System.out.println(objectResponseEntity.getBody());

2:restTemplate.postForEntity采用实体bean传参:(方便书写代码可以将set方法的返回值设置为实例本身。)

@Data
@Accessors(chain=true)
public class MailBean {
   
    private String receivers;
    private String subject;
    private String mailMsg;
    private String mailType;
}
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_JSON);
MailBean mailBean = new MailBea
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值