Android Studio无法添加OKHTTP依赖

Android Studio无法添加OKHTTP依赖,第1张

一、引用okHttp框架

1、点击File-->Project Structure,如图:

2、点击左侧栏的“app”,然后点击顶部导航的“Dependencies”,最后点击“加号”,点击“加号”后,会出现三个选项,选择第一个(添加第三方库),如图:

3、输入,“okhttp”,点击搜索按钮,如图:

4、选择“com.squareup.okhttp:okhttp:2.7.5”,点击“OK”,如图:

5、这时我们可以看到“Dependencies”中增加了一个,“com.squareup.okhttp:okhttp:2.7.5”,点击“OK”按钮,如图:

6、这时看到,app文件夹下的“build.gradle”文件中,"dependencies"下增加了“com.squareup.okhttp:okhttp:2.7.5'”,然后就是少许的等待,如图:

二、okhttp的使用

1、首先构造一个OkHttpClient对象,OkHttpClient okHttpClient = new OkHttpClient()

2、然后,创建一个Request对象,Request request = new Request.Builder().url(url).get().build()注意其中括号中的url就是你请求数据的url

3、最后OkHttpClient对象去构造得到一个Call对象,去异步请求(enqueue),okHttpClient.newCall(request).enqueue(new Callback() {});

一个最简单的OkHttpClient

一个复杂点的OkHttpClient配置

具体可配置参数见OkHttpClient.Builder类,几点注意事项:

两种拦截器的区别

官方提供的Logging Interceptor

地址: https://github.com/victorfan336/okhttp-logging-interceptor

gradle.build中添加依赖:

compile 'com.squareup.okhttp3:logging-interceptor:3.1.2'

通过Request.Builder创建请求,默认是Get请求

主要是构建RequestBody,并设置Content-Type消息头。

1.普通Post请求

比如json请求

2. 使用FormBody传递键值对参数

Content-Type: application/x-www-form-urlencoded

比如:

3. 使用RequestBody传递Json或File对象

4. 使用MultipartBody同时传递键值对参数和File对象

5. 使用MultipartBody提交分块请求

6. 自定义RequestBody实现流的上传

1、同步执行

由于android强制要求网络请求在线程中执行,所以无法使用execute

2、异步执行

1. 设置请求头

2. 设置超时

3. 设置缓存

1、对于Get请求,如果请求参数较多,自己拼接Url较为麻烦

比如

拼接结果: http://www.baidu.com/user/login/username=zhangsan&password=123456

如果能做一些封装,直接addParam(key,value)的形式则会简单很多。

2、Callback在子线程中回调,大部分时候,我们都是需要更新UI的,还需自己post到主线程中处理。

3、构建请求步骤比较多

因此,Square提供了针对OkHttp的封装库Retrofit,另外Github上也有很多第三方的封装库,比如OkGo。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7962327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存