ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基于okhttp的安卓端网络编程

2021-06-28 18:01:51  阅读:191  来源: 互联网

标签:xml 请求 安卓 端网络 OkHttpClient OkHttp okhttp new


目录

一、技术概述

OkHttp是一款开源的网络框架,封装了一个高性能的http请求库。OkHttp支持封装请求和处理响应,使用OkHttp网络框架可以更方便地处理安卓端的网络请求和前后端的数据交互。

二、技术详述

1、在app目录下的build.gradle中添加依赖。
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
这里使用的是OkHttp 4.x,当然使用OkHttp 3.x也是可以的。
2、创建OkHttpClient对象。
OkHttpClient client = new OkHttpClient();
上述创建创建方法采用默认配置,即默认请求连接超时时间10s,读写超时时间10s,连接不成功会自动再次连接。如果需要另外配置,可以通过Builder的方式来自己定义一个OkHttpclient。

public final OkHttpClient = new OkHttpClient.Builder()
  .addInterceptor(new HttpLoggingInterceptor())
  .cache(new Cache(cacheDir,cacheSize))
  .等等配置
  .build();

3、构造Request对象并由OkHttpClient提交请求。

其中JSON为Activity类中的常量public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");,json为组装好数据的JSONObject对象,请求头添加token作为页面访问时的身份验证。
4、获得Response对象并进行分析处理。

其中响应主体为含status、message、data字段的json格式的数据。

流程图

三、技术使用中遇到的问题和解决过程

问题描述:Android 9.0以上系统,HTTP网络访问请求受限,HTTPS无影响。
解决过程:1、在项目的res目录下创建xml目录,并在xml目录下新建network_security_config.xml文件,采用Android7.0+的默认网络配置:

2、修改项目的AndroidManifest.xml,在根目录下增加<uses-permission android:name="android.permission.INTERNET" />
3、修改项目的AndroidManifest.xml,在application中增加android:networkSecurityConfig="@xml/network_security_config"

四、总结

okhttp网络框架不仅使用上方便快捷,而且稳定性和安全性表现好,适合于目前安卓端的网络编程。

五、列出参考文献、参考博客(标题、作者、链接)

Okhttp3基本使用
【Android】OkHttp3总结与封装
从 http协议角度解析okhttp

标签:xml,请求,安卓,端网络,OkHttpClient,OkHttp,okhttp,new
来源: https://www.cnblogs.com/caihan/p/14926870.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有