OKHttp从入门到放弃(自己编写测试服务端)

OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势 。今天就记录以下使用Okhttp的心得和体会。


首先先列出我的参考资料:
* 慕课大神hyman视屏资料
* OkHttp官方github地址
* 官方教程2016版
* 诸葛小布博客
* 清屏网


下面正式开始来入门。

配置环境

客户端配置

下载最新的jar包或者通过Maven仓库构建。

<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>3.7.0</version>
</dependency>

或者,Gradle添加如下依赖
···
compile ‘com.squareup.okhttp3:okhttp:3.7.0’
···

最好去官网上查看当前的最新版本。写这篇博客的最新版本为3.7.0。

服务端配置

这里我们采用eclipse搭配Tomcat作为我们的测试服务器,使用structs2的框架以节省代码的编写。具体的配置参考这篇博客

开始使用

get请求

okHttp的是非常非常简单的,如果我们要发送一个get请求,四步就可以解决了。

  1. 构建一个OkHttpClient,简单的示例代码如下
  OkHttpClient client=new OkHttpClient();
  1. 构建一个Request,简单的示例代码如下
     Request request = new Request.Builder().url("http://baidu.com") .build();
  1. 获得Call对象,简单的实例代码如下:
     okhttp3.Call call = okHttpClient.newCall(request);
  1. 执行get请求,两种执行方式,同步和异步执行
//同步执行
call.execute();

//异步执行
 call.enqueue(new Callback() {
            @Override
            public void onFailure(okhttp3.Call call, IOException e) {
              //发生错误时执行的回调
            }
            @Override
            public void onResponse(okhttp3.Call call, Response response) throws IOException {
              //正确执行,获取返回数据的回调
            }
        });

一个简单的异步Get请求,我们完全就可以这么写。

         OkHttpClient client=new OkHttpClient();
        Request request = new Request.Builder().url("http://baidu.com").build();
        client.newCall(request).enqueue(new Callback() {
                    @Override
                    public void onFailure(Request request, IOException e) {
                    }
                    @Override
                    public void onResponse(Response response) throws IOException {
                    }
         });

上面我们还是用了用git访问了baidu的首页,现在我们实现用get请求我们搭建的测试服务器。
在eclipse中新建一个UserAction类,继承自ActionSupport,添加一个方法,login()用来模拟登录过程。在UserAction中添加username和Passwd属性。
整个UserAction的代码如下:

public class UserAction extends ActionSupport{
   
    private static final long serialVersionUID = 1L;
    private String username;
    private String passwd;

    public String login() throws IOException{       
        System.out.println(" ---:"+username+" "+pas
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要在Java中使用OkHttp3客户连接到Flask-SocketIO服务器,您需要遵循以下步骤: 1. 在Java应用程序中,使用Maven或Gradle等构建工具将OkHttp3客户库添加到您的项目中。例如,可以使用以下Maven依赖项: ```xml <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.9.1</version> </dependency> ``` 2. 在Java应用程序中,使用以下代码创建OkHttp3客户实例并建立与Flask-SocketIO服务器的连接: ```java import okhttp3.*; import org.jetbrains.annotations.NotNull; import java.io.IOException; public class SocketIOClient { private final OkHttpClient client; private final Request request; public SocketIOClient() { this.client = new OkHttpClient.Builder().build(); this.request = new Request.Builder().url("http://localhost:5000/socket.io/").build(); } public void connect() { WebSocketListener listener = new WebSocketListener() { @Override public void onOpen(@NotNull WebSocket webSocket, @NotNull Response response) { System.out.println("Connected to server: " + response.message()); } @Override public void onMessage(@NotNull WebSocket webSocket, @NotNull String text) { System.out.println("Received message: " + text); } @Override public void onClosed(@NotNull WebSocket webSocket, int code, @NotNull String reason) { System.out.println("Disconnected from server: " + reason); } @Override public void onFailure(@NotNull WebSocket webSocket, @NotNull Throwable t, Response response) { System.err.println("Error: " + t.getMessage()); } }; WebSocket ws = client.newWebSocket(request, listener); } } ``` 在上面的代码中,您需要将“http://localhost:5000”替换为您的Flask-SocketIO服务器的URL和口。 3. 现在,您可以使用WebSocket实例发送和接收消息。例如,以下代码将向服务器发送“hello”消息并处理服务器发送的回复消息: ```java ws.send("hello"); ws.send("hello", new WebSocketListener() { @Override public void onMessage(@NotNull WebSocket webSocket, @NotNull String text) { System.out.println("Received reply: " + text); } }); ``` 在上面的代码中,服务器将使用“message”事件发送回复消息。您可以使用“onMessage”方法侦听此事件并处理消息。 希望这可以帮助您使用OkHttp3客户连接到Flask-SocketIO服务器!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值