在spring系列框架中,使用代码向另一个服务发送请求,一般可以用restTemplate或者feign,但是这两种方法的底层原理是啥呢,今天就来探究一下。
首先建立服务端:
@RestController
public class Controller {
@PostMapping("hello")
public String hello() {
return "hello";
}
}
新建一个springboot服务,创建这么一个controller,然后启动服务。
其次使用代码发送请求来调用这个服务:
public static void main(String[] args) throws IOException {
URI uri = URI.create("http://127.0.0.1:8080/hello");
URL url = uri.toURL();
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(HttpMethod.POST.name());
connection.setDoOutput(true);
connection.connect();
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
System.out.println(reader.readLine());
}
这样就可以看到控制台会返回一个“hello”。
这就是java代码发送网络请求的基本api,spring框架在此基础上进行了进一步的封装。
下一篇就来拆解spring对jdk的基本api进行了哪些封装。