springboot使用RestTemplate调用http请求

这篇文章主要讲述如何使用RestTemplate,帮助新手快速入门,看完会比较有成就感和获得感,都是干货!

Java如何调用http接口?

  1. 通过使用jdk网络类Java.net.HttpURLConnection;

  2. 通过Apache封装的CloseableHttpClient;

  3. 通过SpringBoot-RestTemplate;

    本章主要讲SpringBoot使用RestTemplate调用http网络接口。

RestTemplate使用方法

RestTemplate是Sping支持的一种Http请求工具,提供常用的请求模板,例如GET,POST,PUT等通用的请求执行方法。在SpringBoot中可以直接使用new RestTemplate来使用该方法。

RestTemplate restTemplate = new RestTemplate();

修改RestTemplate乱码问题:

HttpMessageConverter<?> converter = new StringHttpMessageConverter(StandardCharsets.UTF_8);
// 使用 utf-8 编码集的 conver 替换默认的 conver(默认的 string conver 的编码集为 "ISO-8859-1")
restTemplate.getMessageConverters().set(1,converter);

不多BB,直接上代码,我们这里以get请求方式ping一下百度官网

整个项目只有一个控制类和spring boot启动类。和配置文件

项目结构:

配置文件:

server.port=8086
server.servlet.context-path=/test
spring.profiles.ative=dev

控制类:

这里的url可以换成任意的路径,包括本地项目服务路径。

package com.test.resttemplate.controller;
​
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
​
import java.nio.charset.StandardCharsets;
​
@RestController
@Slf4j
@RequestMapping("/test")
@Api(tags = "spring获取http测试")
public class GetTestController {
​
    @RequestMapping(value = "/getTest",method = RequestMethod.GET)
    @ApiOperation("获取http测试")
    public String test() throws Exception{
        RestTemplate restTemplate = new RestTemplate();
        HttpMessageConverter<?> converter = new StringHttpMessageConverter(StandardCharsets.UTF_8);
        // 使用 utf-8 编码集的 conver 替换默认的 conver(默认的 string conver 的编码集为 "ISO-8859-1")
        restTemplate.getMessageConverters().set(1,converter);
        String url = "http://www.baidu.com";
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url,String.class);
        //获取返回的状态码值
        HttpStatus statusCode = responseEntity.getStatusCode();
        //判断状态码值是否是以2开头,及返回的状态是否成功!
        boolean urlresult = statusCode.is2xxSuccessful();
        log.info("=========远程调用参数结果========"+statusCode);
        if(urlresult)
            return "访问成功!";
        else
            return "访问失败!";
    }
}
​
​

接下来我们启动这个项目,然后访问该路径

postman访问:

浏览器访问:

程序运行状态信息:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值