使用OKHttp实现源码查看器

OKHttp的原理及源码查看器实现:


okhttp概念: 用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)


作用:减少对服务器的请求次数,减少请求延迟,减少数据流量,缓存响应数据来减少重复的网络请求,自动处理GZip压缩,客户端不管是使用 HttpClient 还是 OkHttp 都可以在请求头里加上 gzip 属性,加上该属性后会自动使用 gzip 压缩发送数据。
1. get请求
2. post请求
3. 基于Http的文件上传
4. 文件下载
5. 加载图片(内部会根据imageview的大小自动对图片进行合适的压缩。虽然不适合一次性加载大量图片的场景,但是对于app中偶尔有几个图片的加载,还是可用的)
6. 支持请求回调,直接返回对象、对象集合
7. 支持session的保持
 
OKhttp下载地址:https://github.com/hongyangAndroid/okhttp-utils
Android Studio的用户:

使用Studio的图形管理进行添加.(注意:okhttp有2.0版本和3.0以后的版本,这两个版本有的方法使用上有些许的不同)

Eclipse的用户:

可以下载最新的jar okhttp he latest JAR ,添加依赖就可以用了。

最新的jar地址:okio the latest JAR 

        注意:okhttp内部依赖okio,别忘了同时导入okio:

 注意:使用网络在清单文件添加权限:

<uses-permission android:name="android.permission.INTERNET"/>

使用:

(一)Http Get的使用步骤:

对了网络加载库,最常见的是http get请求了,比如获取一个网页的内容。
 01.创建OkHttpClient对象,并设置连接超时时间(读取的可写可不写)

OkHttpClient mOkHttpClient=new OkHttpClient();
注意 :这种设置超时时间是OKhttp2.0特有的通过方法来进行设置

mOkHttpClient.setConnectTimeout(10, TimeUnit.SECONDS);
mOkHttpClient.setReadTimeout(10,TimeUnit.SECONDS);
mOkHttpClient.setWriteTimeout(10,TimeUnit.SECONDS);
提示 :设置超时时间在OKhttp3.0以后,使用build的方式进行
    
Ok
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是安卓使用 okhttp 实现登录注册功能的完整代码示例: 1. 在你的项目中添加 okhttp 依赖。 ``` implementation 'com.squareup.okhttp3:okhttp:4.9.0' ``` 2. 创建一个 OkHttpClient 实例用于发送请求。 ``` OkHttpClient client = new OkHttpClient(); ``` 3. 创建一个 RequestBody 对象用于发送请求时的参数。 ``` RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("username", "your_username") .addFormDataPart("password", "your_password") .build(); ``` 4. 创建一个 Request 对象,包含请求的 URL、请求方式和请求参数。 ``` Request request = new Request.Builder() .url("http://your_domain/login.php") .post(requestBody) .build(); ``` 5. 使用 OkHttpClient 发送请求,并处理响应。 ``` try (Response response = client.newCall(request).execute()) { if (!response.isSuccessful()) { throw new IOException("Unexpected code " + response); } // 处理响应 String responseData = response.body().string(); Log.d(TAG, "response data: " + responseData); } ``` 6. 注册功能与登录类似,只需要修改请求的 URL 和参数即可。 ``` RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("username", "your_username") .addFormDataPart("password", "your_password") .addFormDataPart("email", "your_email") .build(); Request request = new Request.Builder() .url("http://your_domain/register.php") .post(requestBody) .build(); ``` 注意,这里只是一个简单的示例,并未考虑到网络请求的异步处理、异常处理等问题,具体实现还需要根据具体情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值