Skip to content

网络请求

更新: 8/7/2025 字数: 0 字 时长: 0 分钟

后端转发请求也是一个十分常见的需求,我们需要Java服务作为客户端调用远程的http/ws接口,然后再在内部进行处理,最后转发给前端,这里主要来讲一下进行网络请求常用的技术栈

OkHttp

OkHttp算是一个相当常见的客户端请求工具了,时至今日仍然是最受欢迎的客户端请求工具之一,其本身支持多种丰富的网络请求模式,其中就包含了我们常见的Http,WebSocket,SSE请求。

引入到项目中

xml
<dependency>  
    <groupId>com.squareup.okhttp3</groupId>  
    <artifactId>okhttp-jvm</artifactId>  
    <version>5.1.0</version>  
</dependency>

由于新版本的OkHttp对KMP做了适配,因此在Maven项目中要针对不同的情况引入不同的包,针对我们目前的Java项目(后端jvm环境),这里引入okhttp-jvm即可

ps:由于OkHttp最早是为Android做的请求包,而Google已经将Android的官方语言替换为了Kotlin,因此在我们的Java项目中引入OHttp会引入一些Kotlin标准库,这会对程序的内存占用造成一定的影响

建立连接

首先我们要先创建一个OkHttp客户端,后续我们的各种请求都是基于这个客户端。

java
OkHttpClient httpClient = new OkHttpClient.Builder()  
        .build();

这里使用了Builder模式进行创建,其实也可以通过new 的方式直接创建,但是如果要进行一些复杂的配置还是建议使用Builder模式

Get请求

这里推荐一个好用的HttpApi网站JSONPlaceholder,他提供了一些常见的Api服务,可以给客户端用来测试是否可以正常发送请求

java
 public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url("https://jsonplaceholder.typicode.com/posts/1")
                .build();
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                System.out.println(response.body().string());
            } else {
                System.err.println("Request failed: " + response.code());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

这里我们的Request请求是通过创建一个Request实体实现的,里面可以放我们的请求的url以及Parm

返回的Response类就是相应的信息,需要使用try-with-resource语法包围一下

本站访客数 人次      本站总访问量