icode icode
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

iqqcode

保持对技术的探索实践与热爱
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 基础内容

  • AndroidCore

  • Android UI

  • Components

  • Fragment

  • 网络操作

    • Android网络基础

    • OKHttp

      • Android中的网络操作
        • OKHttp简介
        • 双任务队列机制
        • OKHttp拦截器
        • OkHttp的工作流程分析-转载
        • 拦截器详解1(重点):重试、重定向、桥、缓存 转载
        • 拦截器详解2(重点):连接、请求服务-转载
        • 补充
      • AsyncTask

    • 异步机制

    • 数据存储

    • 学习笔记

    • 自定义View

    • View事件体系

    • Android
    • 网络操作
    • OKHttp
    iqqcode
    2021-06-17
    目录

    Android中的网络操作

    # API 28 新特性

    API 28默认的网络请求均为HTTPS,限制HTTP请求

    如果不使用Https,则会出现UnknownServiceException的错误

    image-20210611151939093

    # 方法一

    I. 添加网络请求权限,如果还使用网络请求的缓存功能,那么还要申请读写外存的权限:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
    1
    2
    3

    II. 创建安全配置文件

    1. 在res文件夹下创建xml/network_security_config文件
    2. 增加cleartextTrafficPermitted属性
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <!--禁用掉明文流量的检查-->
        <base-config cleartextTrafficPermitted="true" />
    </network-security-config>
    
    1
    2
    3
    4
    5

    III. 添加安全配置文件

    • 在AndroidMenifest中的Application中声明
    android:networkSecurityConfig="@xml/network_security_config"
    
    1

    # 方法二

    I. 添加网络请求权限,如果还使用网络请求的缓存功能,那么还要申请读写外存的权限:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
    1
    2
    3

    II. 在application节点添加

     <application
        ……………………
         android:usesCleartextTraffic="true">
     
        ………………………………
     
    </application>
    
    1
    2
    3
    4
    5
    6
    7

    # 请求网络数据步骤

    1. 实例化一个URL对象

    2. 获取HttpURLConnection对象

    3. 设置请求连接属性

    4. 获取响应码,判断连接结果码

    5. 读取输入流并解析

    编辑 (opens new window)
    #okhttp#net
    上次更新: 2021/06/17, 17:05:09
    原生HTTP使用(下)
    OKHttp简介

    ← 原生HTTP使用(下) OKHttp简介→

    最近更新
    01
    匿名内部类
    10-08
    02
    函数式接口
    10-08
    03
    ARouter-Kotlin踩坑
    10-05
    更多文章>
    Theme by Vdoing | Copyright © 2021-2023 iqqcode | MIT License | 备案号-京ICP备2021028793号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×