一些友友们写 安卓的时候,都会 用到网络请求,有时候一个java文件就需要用到多次,每次请求的代码重复型较高,就可以考虑到将请求代码封装起来,下面是请求代码,亲测有效!效果俱佳!

1.        ·创建一个空白的java类,编写下段代码:

import java.io.IOException;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;public class MyOkhttp {private String ResponseData = null;private boolean aBoolean = false;public String sendRequest(Request request){OkHttpClient client = new OkHttpClient();Call call = client.newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {// 网络请求失败}@Overridepublic void onResponse(Call call, Response response) throws IOException {// 网络请求成功String data = response.body().string();ResponseData = data;aBoolean = true;  // 因为这种写法是异步请求,所以需要判断一下是否取到数据}});// 加个循环卡住当前线程,直到取到数据while (true){if (aBoolean)return ResponseData;   // 返回数据else{// 没加这段代码前,总是会有取不到数据,看代码都没有发现毛病,加上这个后就可以了,迷,估计是一些小毛病吧,速度太快给个缓冲,不影响效率。try {Thread.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}}}}
}

2.        调用部分:

【注意:在Android4.0以后,在主线程中的HTTP请求,运行时都会报错 ANRs(“Application Not Responding”),”应用没有响应“。所以需要进行网络请求的时候 还是需要开辟一个子线程,然后等到数据返回成功后再切换为主线程来刷新UI。】

new Thread(()->{  //加个子线程MyOkhttp myOkhttp = new MyOkhttp();  // 创建上面的封装对象Request request = new Request.Builder()   .url("网络地址").build();String data = myOkhttp.sendRequest(request);  // 获取相应数据......//加下来就是对获取到的数据解析了,注意,对UI进行更改需要切换为主线程,不然会报错。我诺列两种方法切换主线程:1.runOnUiThread(()->{// UI更改代码});2.
写一个全局变量:private Handler handler = new Handler();然后:    handler.post(()->{// UI更改代码});}).start();

Android-网络请求封装类-okhttp相关推荐

  1. okhttp的应用详解与源码解析--android网络请求框架发展史

    乘5G之势,借物联网之风,Android未来亦可期,Android优势在于开放,手机.平板.车载设备.智能家居等都是Android的舞台,Google不倒,Android不灭,本专栏的同步视频教程已经 ...

  2. Android -- 网络请求

    一. HttpURLConnection 二. HttpClient 三.Volley 四.OkHttp 五. Retrofit ----------------------------------- ...

  3. 流行框架(二)网络请求库 OKhttp

    文章目录 概述 HttpURLConnection GET和POST获取文本数据 GET POST OKHttp 基本使用 依赖与权限 发起一个get请求 重要概念 OkHttpClient Requ ...

  4. Android网络请求框架之Retrofit(二)

    前面一篇文章介绍了Retrofit的基本用法,没有看过的童鞋可以移步:Android网络请求框架之Retrofit(一),现在我们来继续介绍Retrofit配合RxJava.RxAndroid的用法. ...

  5. android 设置允许http请求_网络请求框架----OkHttp原理

    一.前言 在 Android 中,网络请求是一个必不可少的功能,因此就有许多代表网络请求客户端的组件库,具有代表性的有下面三种: Apache 的 HTTP 客户端组件 HttpClient. Jav ...

  6. android之网络请求框架OKhttp、原生http请求

    ===============原生http===================== public class MainActivity extends AppCompatActivity imple ...

  7. android网络请求撤销,Android OkHttp + Retrofit 取消请求的方法

    前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求.对于OkHttp来说,具体是调用Call的cancel方法. 如何找到这一个 ...

  8. android网络请求流程图,Android OKHttp系列1-流程总结

    1. 调用示例 同步方式: new Thread(new Runnable() { @Override public void run() { try { OkHttpClient client = ...

  9. Android 网络请求详解

    我们知道大多数的 Android 应用程序都是通过和服务器进行交互来获取数据的.如果使用 HTTP 协议来发送和接收网络数据,就免不了使用 HttpURLConnection 和 HttpClient ...

  10. android retrofit2.0 rxjava2,Android - 网络请求之 Retrofit2 + RxJava

    老婆保佑,代码无BUG 目录 引用 与其他开源请求库对比 Retrofit注解 使用 GET请求 POST请求 Retrofit2 + RxJava 基础使用 优化 封装Retrofit2 + RxJ ...

最新文章

  1. 十八、“问余浪子今何在,唯有回头铸梦人”(2021.5.28)
  2. 通过rtcwake命令设置系统S3(休眠到内存)/S4(挂起到硬盘)一段时间后自动唤醒
  3. windows 播放MP3音乐
  4. python定时任务_Python 定时任务最佳实践
  5. hashmap是有序还是无序_说实话,你要是看完这篇 HashMap ,和面试官扯皮真的就没问题了!
  6. bazel 链接第三方动态库_如何自己制作静态库?
  7. 十大经典排序算法(动图演示)(转)
  8. Maple 全面基础
  9. 入手kindle 3
  10. JS中什么是回调函数?
  11. Linux服务器入侵预防与问题排查
  12. opencv与PIL处理图像视频
  13. 已知从1970年1月1日0分0秒到目前的总秒数计算当前时间
  14. 台式计算机品牌怎么查,教你怎么看电脑主板型号和品牌
  15. Python:计算任意n阶矩阵行列式
  16. html文件怎么打印没响应,打印机打印文件时显示未响应是怎么回事
  17. 可能被你误解的 DRY 原则
  18. HTML+CSS个人笔记
  19. Python脚本实现Mac开机自动语音播报天气
  20. Jess的一些使用示例

热门文章

  1. 无网络linux本地yum源,Linux无网配置CentOS本地yum源
  2. [share] About Pull Ups
  3. 职称计算机作用,2010年职称计算机:Photoshop滤镜作用
  4. svg动画 - 在线编辑器
  5. 解释性语言和编译型语言的差别在哪里?
  6. php函数不支持的功能有什么,wapl是什么功能?启用有什么用
  7. Windows API-GDI入门基础知识详解(转)
  8. 智联物联分享之物联网协议MQTT简述,MQTT协议特点
  9. 二值分类模型的评价指标
  10. 封装与多态的基本使用