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
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值