Android 网络请求框架解析之okhttp与okio
程序员文章站
2022-03-16 20:29:11
安卓网络请求先看一下今天的大纲 导入okhttp和okio依赖 禁用掉明文流量请求的检查 添加访问权限 布局及代码实现 运行结果下面是具体步骤一、导入okhttp和oki...
安卓网络请求
先看一下今天的大纲
- 导入okhttp和okio依赖
- 禁用掉明文流量请求的检查
- 添加访问权限
- 布局及代码实现
- 运行结果
下面是具体步骤
一、导入okhttp和okio的依赖
1.打开file-project structure-dependencies,
2.选择自己的程序文件,点击加号,选择library dependency
3.搜索okhttp,选择com.squareup.okhttp3,点击ok按钮,此时可能需要较长时间
4.okio同上
5.应用,确认
6.此时我们可以看到gradle scripts-build.gradle (module: my_application.app)多了两个依赖
module: my_application.app是自己对应的app
二、禁用掉明文流量请求的检查
1.在res目录下新建xml文件夹,在xml文件夹下新建nettools.xml
nettools.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <!--禁用掉明文流量请求的检查--> <base-config cleartexttrafficpermitted="true" /> </network-security-config>
2.在manifests-androidmanifest.xml中添加刚才创建的nettools.xml
android:networksecurityconfig="@xml/nettools"
三、添加网络请求权限
在manifests-androidmanifest.xml中添加
<uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.read_external_storage" /> <uses-permission android:name="android.permission.write_external_storage" /> <uses-permission android:name="android.permission.access_network_state" />```
四、代码实现
1.主代码的实现
mainactivity.java
import androidx.annotation.uithread; import androidx.appcompat.app.appcompatactivity; import android.os.bundle; import android.util.log; import android.view.view; import android.widget.button; import android.widget.textview; import java.io.ioexception; import okhttp3.okhttpclient; import okhttp3.request; import okhttp3.response; public class mainactivity extends appcompatactivity { private button btn; private textview txt; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); initview(); } private void initview() { btn = findviewbyid(r.id.btn); txt = findviewbyid(r.id.txt); btn.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { request(); } }); } protected void request() { new thread(new runnable() { @override public void run() { okhttpclient client = new okhttpclient(); request request = new request.builder() .url("https://www.baidu.com") .build(); response response = null; string string = null; try { response = client.newcall(request).execute(); string = response.body().string(); } catch ( ioexception e) { e.printstacktrace(); } string finalstring = string; runonuithread(new runnable() { @override public void run() { txt.settext(finalstring); } }); } }).start(); } }
2.主布局的实现
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" /> <scrollview android:layout_width="match_parent" android:layout_height="match_parent"> <textview android:id="@+id/txt" android:textsize="20sp" android:layout_width="match_parent" android:layout_height="wrap_content" /> </scrollview> </linearlayout>
五、运行结果
如果运行失败可能是模拟器的问题,建议换模拟器或直接用真机
到此这篇关于android 网络请求框架解析之okhttp与okio的文章就介绍到这了,更多相关android okhttp 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
Android 搭建MVP+Retrofit+RxJava网络请求框架解析
-
Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件/多图片上传)
-
Android 网络请求框架解析之okhttp与okio
-
带你一步步剖析Retrofit 源码解析:一款基于 OkHttp 实现的网络请求框架 android源码解析网络请求OKHTTPRetrofit
-
Android 搭建MVP+Retrofit+RxJava网络请求框架解析
-
Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
-
Android网络请求框架使用 -- OkHttp
-
Android精通之OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架
-
Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件/多图片上传)
-
Android 网络请求框架解析之okhttp与okio