使用Get请求

private void useGet() {OkHttpClient okHttpClient = new OkHttpClient();Request.Builder builder = new Request.Builder();builder.url("https://square.github.io/okhttp/");Request request = builder.build();okHttpClient.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(@NotNull Call call, @NotNull IOException e) {Log.d(TAG, e.toString());}@Overridepublic void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {String string = response.body().string();Log.d(TAG, string);}});}

enqueue 和 excute 的区别是,enqueue 是在子线程执行,而excute 是在当前线程执行;

使用post

    private void usePost() {OkHttpClient okHttpClient = new OkHttpClient();final MediaType FORM= MediaType.get("application/x-www-form-urlencoded; charset=utf-8");RequestBody requestBody = RequestBody.create("aa=bb&&cc=dd", FORM);Request request = new Request.Builder().url("http://www.baidu.com").post(requestBody).build();Call call = okHttpClient.newCall(request);call.enqueue(new Callback() {@Overridepublic void onFailure(@NotNull Call call, @NotNull IOException e) {}@Overridepublic void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {String string = response.body().string();Log.d("OkhttpFragment", string);}});}

使用拦截器:

        OkHttpClient.Builder builder1 = new OkHttpClient.Builder();OkHttpClient okHttpClient = builder1.addInterceptor(new Interceptor() {@NotNull@Overridepublic Response intercept(@NotNull Chain chain) throws IOException {Log.d(TAG, "start");long start = System.currentTimeMillis();Response proceed = chain.proceed(chain.request());Log.d(TAG, "end");Log.d(TAG, "cost " + (System.currentTimeMillis() - start));return proceed;}}).build();Request.Builder builder = new Request.Builder();builder.url("https://square.github.io/okhttp/");Request request = builder.build();okHttpClient.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(@NotNull Call call, @NotNull IOException e) {Log.d(TAG, e.toString());}@Overridepublic void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {String string = response.body().string();Log.d(TAG, string);}});}

OkHttp 使用基础相关推荐

  1. Okhttp 与 Retrofit的简单介绍及两者间的联系

    版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758. https://blog.csdn.net/u013132758/article/deta ...

  2. okhttp教程——起步篇

    okhttp教程--起步篇 这篇文章主要总结Android著名网络框架-okhttp的基础使用,后续可能会有关于他的高级使用. okhttp是什么 okhttp是Android端的一个Http客户端, ...

  3. 为什么要使用Retrofit,Retrofit与OkHttp

    首先,我们来看一下OkHttp的请求流程 第一步,构建OkHttp客户端 第二步,写request请求地址,其中不止包括url,还要包括请求头,请求参数等等 第三步,call,网络请求方式是Okhtt ...

  4. OKHTTP学习之高级特性

    前言 上一篇我已经将OKHTTP的基础知识介绍了一番<< OKHTTP学习之基础知识及运用 >>.这一篇我们一起探索一些复杂的功能. 在这之前我们将基础知识再回顾一下. Cal ...

  5. Android进阶知识:Retrofit相关

    1.前言 Retrofit是什么?Retrofit是一个遵循RESTful设计的进行HTTP网络请求框架的封装,是现在Android端最火的进行网络请求的库.就像Volley是谷歌官方对HttpURL ...

  6. Retrofit2 工作原理解析(一)

    Retrofit2 工作原理解析(一) 概述 Retrofit是square公司开源的一款类型安全的http请求框架,用于Java和Android程序.Retrofit可以说是restful风格的一个 ...

  7. Retrofit--开始之旅

    什么是Retrofit 官方网站中将Retrofit描述为 A type-safe REST client for Android and Java. 我们可以使用注释来描述HTTP请求,URL参数替 ...

  8. Android初级开发(九)——网络交互—解析JSON格式数据

    一.前言 首先还是在web服务器(我这里用的是tomcat)新建json文本 文本内容 在浏览器上预览一下 二.JSONObject方法 1.我们还是在OkHttp的基础上修改代码,布局不变 Main ...

  9. 我们真的需要使用RxJava+Retrofit吗?

    前言 Android Http 最基础的实现方式 使用HttpURLConnection实现网络请求 网络请求框架的涌现 Volley 简单使用 OKHttp 简单介绍 Retrofit RxJava ...

最新文章

  1. Docker 学习笔记之二
  2. IDA Pro - 如何得到比较清楚的逆向伪代码
  3. 每日程序C语言21-递归逆序数出字符串
  4. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置
  5. P4011 孤岛营救问题
  6. adf开发_ADF BC:创建绑定到业务组件的UI表
  7. 卸载frontpage服务器扩展_免费0撸一月腾讯云服务器
  8. Windows Store 开发总结——文件操作
  9. Windows2003 + SQL2000群集安装手册(DELL MD3000) 之MD3000 RAID配置方法(2)
  10. 《网络攻防》 第六周学习总结
  11. iOS开发拓展篇—音频处理(音乐播放器3)
  12. ansible 循环与条件判断when
  13. python卡方检验计算pvalue值_Python数据科学:卡方检验
  14. linux操作系统未来的发展方向,2.9 操作系统的未来发展趋势
  15. mysql单表瓶颈_mysql单表性能瓶颈_优化系列 | 实例解析MySQL性能瓶颈排查定位-云栖社区-阿里云...
  16. 查看及修改微软Edge浏览器用户数据保存位置(包括详细历史记录(页面停留时间,页面访问次数,最后访问时间,下载历史等),Cookie,书签等)
  17. 让你的浏览器具备Wap功能
  18. 基于485总线的评分系统双机实验报告
  19. 信息技术服务连续性计划
  20. IT互联网行业应届生求职杂谈

热门文章

  1. android 属性动画 弧形,CSS分层动画可以让元素沿弧形路径运动
  2. java 运算符_java 运算符
  3. fedora14 an mysql_Fedora 14下 MySQL 更改密码
  4. [CQOI2011]动态逆序对
  5. Beta 冲刺(4/7)
  6. 微信公众号监听返回按钮问题解决
  7. Jenkins一键上线Java项目
  8. 算法学习之路|数位dp简要分析
  9. Mastering KVM Virtualization:第二章 KVM内部原理
  10. hive的变量传递设置