okhttp

Android 开源框架 ( 一 ) OkHttp 网络框架的基本使用

帅比萌擦擦* 提交于 2020-05-05 17:36:46
HttpClient 和 HttpURLConnection 以及 OkHttp :   在Android 2.2版本之前,HttpClient拥有较少的bug,因此使用它是最好的选择。 而在Android2.3版本及以后,HttpURLConnection则是最佳的选择。它的API简单,体积较小,因而非常适用于Android项目。压缩和缓存机制可以有效地减少网络访问的流量,在提升速度和省电方面也起到了较大的作用。对于新的应用程序应该更加偏向于使用HttpURLConnection,因为在以后的工作当中我们也会将更多的时间放在优化HttpURLConnection上面。 其实现在嘛,两者都不用,就用Okhttp. HttpUrlConnection现在的底层实现就是通过Okhttp. 一. HttpUrlConnect 介绍   1. 网络通信首先需要配置网络请求权限: <uses-permission android:name= " android.permission.INTERNET " />   2.使用如下方式实现子线程里http请求通信:   开启线程两种常用的实现方式:一种是继承Thread类.一种是实现Runnable接口. new Thread( new Runnable() { @Override public void run() { ... //

Android网络框架之Retrofit + RxJava + OkHttp 变化的时代

依然范特西╮ 提交于 2020-05-05 17:36:31
1、什么是Retrofit框架? 它是Square公司开发的现在非常流行的网络框架,所以我们在导入它的包的时候都可以看到这个公司的名字,目前的版本是2。 特点: 性能好,处理快,使用简单,Retrofit 是安卓上最流行的HTTP Client库之一 使用REST API设计风格 支持 NIO(new i/o) 默认使用OKHttp处理网络请求,我觉得可以看成是OKHttp的增强。 随着Google对HttpClient的摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofit则对okHttp进行了强制依赖。Retrofit也是Square公司开发的一款针对Android网络请求的框架,其实质就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口。retrofit非常适合于RESTful url格式的请求,更多使用注解的方式提供功能。 现在android网络请求大部分已经换成了Retrofit2.0 +RxJava + okHttp3.0,Retrofit 使用接口的方式,负责请求的数据和请求的结果,OkHttp 负责请求的过程,RxJava 负责异步,各种线程之间的切换。毫无疑问这三剑客 已成为当前Android 网络请求最流行的方式。 简介 Retrofit: Retrofit是Square

Android 网络编程之最新OKHTTP:3.9.0

泄露秘密 提交于 2020-05-05 16:23:12
本节前言 本来是想围绕着HttpClient讲解的,后来发先Android4.4之后okhttp代替了hc,所以将不再讲解hc okhttp的简单使用,主要包含: 一般的get请求 一般的post请求 基于Http的文件上传 文件下载 加载图片 支持请求回调,直接返回对象、对象集合 支持session的保持 使用okhttp 使用okhttp前首先要添加依赖 compile 'com.squareup.okhttp3:okhttp:3.9.0' 一般的get请求 对了网络加载库,那么最常见的肯定就是http get请求了,比如获取一个网页的内容 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); String string = response.body().string(); System.out.println(string); } 运行结果 以上就是发送一个get请求的步骤,首先构造一个Request对象,参数最起码有个url,当然你可以通过Request.Builder设置更多的参数比如:header、method等

基本使用——OkHttp3详细使用教程

浪尽此生 提交于 2020-05-05 16:19:48
基本使用——OkHttp3详细使用教程 转 https://blog.csdn.net/xx326664162/article/details/77714126 概述 OkHttp现在应该算是最火的Http第三方库,Retrofit底层也是使用OkHttp,网上很多教程都写的不错,但是有些我认为重要的知识,大多一笔带过,所以我决定写一篇入门文章 OkHttp官网地址: http://square.github.io/okhttp/ OkHttp GitHub地址: https://github.com/square/okhttp 出现背景 网络访问的高效性要求,可以说是为高效而生 解决思路 提供了对 HTTP/2 和 SPDY 的支持,这使得对同一个主机发出的所有请求都可以共享相同的套接字连接 如果 HTTP/2 和 SPDY 不可用,OkHttp 会使用连接池来复用连接以提高效率 提供了对 GZIP 的默认支持来降低传输内容的大小 提供了对 HTTP 响应的缓存机制,可以避免不必要的网络请求 当网络出现问题时,OkHttp 会自动重试一个主机的多个 IP 地址 OkHttp3设计思路 Requests(请求) 每一个HTTP请求中都应该包含一个URL,一个GET或POST方法以及Header或其他参数,当然还可以含特定内容类型的数据流。 Responses(响应)

JAVA学习笔记 (okHttp3的用法)

好久不见. 提交于 2020-05-05 15:55:49
最近的项目中有个接口是返回文件流数据,根据我们这边一个验签的插件,我发现里面有okHttpClient提供了Call.Factory,所以就学习了下okHttp3的用法。 1、概述 okhttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付 Square 公司开发。 okttp3的github官方地址是: https://square.github.io/okhttp/ 2、get方式请求 try { // 初始化 OkHttpClient OkHttpClient client = new OkHttpClient(); // 初始化请求体 Request request = new Request.Builder() .get() .url(url) .build(); // 得到返回Response Response response = client.newCall(request).execute(); } catch (IOException e) { e.printStackTrace(); } 3、post方式请求 try { // 初始化 OkHttpClient OkHttpClient client = new OkHttpClient(); //请求参数体 RequestBody requestBody = new FormBody

Android 网络框架 OKHttp3

前提是你 提交于 2020-05-05 15:28:53
概述 OKHttp是一个处理网络请求的框架,其优点有,支持http2,对一台机器的所有请求共享同一个socket。 内置连接池,支持连接复用,减少延迟。通过缓存避免重复的请求,请求失败时自动重试主机的其他ip,自动重定向。 添加依赖 compile 'com.squareup.okhttp3:okhttp:3.8.1' Get请求 Get方式发送同步请求 OkHttpClient okHttpClient; Request request; okHttpClient = new OkHttpClient(); request = new Request.Builder() .url( "http://www.baidu.com") // 请求接口,如果需要传参拼接到接口后面,如www.baidu.com?name=zhangsan&sex=18 .build(); final Call call = okHttpClient.newCall(request); new Thread( new Runnable() { @Override public void run() { try { Response response = call.execute(); // 得到Response 对象 if (response.isSuccessful()){ // 判断是否响应 Log.d

2018年Android面试题含答案--适合中高级(下)

半世苍凉 提交于 2020-05-05 12:04:21
1、Activity生命周期? onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy() 2、Service生命周期? service 启动方式有两种,一种是通过startService()方式进行启动,另一种是通过bindService()方式进行启动。不同的启动方式他们的生命周期是不一样. 通过startService()这种方式启动的service,生命周期是这样:调用startService() --> onCreate()--> onStartConmon()--> onDestroy()。这种方式启动的话,需要注意一下几个问题,第一:当我们通过startService被调用以后,多次在调用startService(),onCreate()方法也只会被调用一次,而onStartConmon()会被多次调用当我们调用stopService()的时候,onDestroy()就会被调用,从而销毁服务。第二:当我们通过startService启动时候,通过intent传值,在onStartConmon()方法中获取值的时候,一定要先判断intent是否为null。 通过bindService()方式进行绑定,这种方式绑定service,生命周期走法:bindService--

热乎的,OKHttp Post请求参数发送流请求

烈酒焚心 提交于 2020-05-04 23:01:28
其实我从年前就开始学这个okHttp,只不过一直没成功过,遇到过400,411,500等各种错误,整的我是各种捉急呀,昨天刚开始上班,我又开始整它,还好借着我今天生日寿星最大哈,终于搞出来了,各种泪流满面呀。 好了,说这么多也烦了,开始说说代码吧,这里代码我服务端用的是C# WCF,贴一个声明方法如下。 [OperationContract] [WebInvoke( Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "GetUsers")] int GetUsers(string userName, string userPwd, String devicecid); 大家可看到这里我的Request和Response用的都是Json,所以这就要求客户端发送的必须是Json请求。 好了,那么,这时候就该OkHttp上场了。 先贴下,手机端点击触发事件的方法 private Object[] parameterValue; private String[] parameter; private String method;

Android-App性能优化

北城以北 提交于 2020-05-03 18:44:35
上一篇我们讲了java的引用机制,今天我们来一下和它有关的app性能优化(其实也不是很大)。 性能优化的目标 在网上也看到过很多相关的文章,他们基本总结为:快,稳,省,小,描述的很准确.如下图 (注:此图不知道啥时候收集的,如有侵权,立删): 快 如何让app在运行过程过不卡顿,运行流畅,速度快,也就是说如何解决卡顿呢?我们先看看那些因素影响卡顿? 1. UI,包括ui的绘制,刷新等 2. 启动,包括冷启动,热启动,温启动等 3. 跳转,页面跳转,前后天切换 4. 及时反馈,点击事件,滑动,系统事件 UI 这个涉及到android的系统显示原理,我们简单了解一下: Android 显示过程可以简单概括为:Android 应用程序把经过测量,布局、绘制后的 surface 缓存数据,通过 SurfaceFlinger 把数据渲染到显示屏幕上, 通过 Android 的刷新机制来刷新数据。也就是说应用层负责绘制,系统层负责渲染,通过进程间通信把应用层需要绘制的数据传递到系统层服务,系统层服务通过刷新机制把数据更新到屏幕上。 换一种方式说:Android 系统每隔 16ms 发出 VSYNC 信号,触发对 UI 进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需的 60FPS。(注:FPS 表示每秒传递的帧数。)在理想情况下,60 FPS 就感觉不到卡

好程序员web前端教程JavaScript系列之HTTP

ぃ、小莉子 提交于 2020-05-01 20:51:52
  好程序员web前端教程JavaScript系列之HTTP:http 是我们前后台交互的时候的传输协议(即超文本传输协议) HTTP 的工作流程 .和服务器建立链接 .建立链接后,发送一个请求给服务器(请求) .服务器接受到请求以后进行相应的处理并给出一个回应(响应) .断开于服务器的链接 和服务器建立链接 怎么和服务器建立链接呢? 需要保证客户端的接受和发送正常,服务器端的接受和发送正常 这里就涉及到一个东西叫做 TCP/IP 协议 建立链接的主要步骤叫做 三次握手 1、客户端发送一个消息给到服务端 此时: 服务端知道了 客户端可以正常发送消息 服务端知道了 服务端可以正常接受消息 2、服务端回给客户端一个消息 此时: 服务端知道了 客户端可以正常发送消息 服务端知道了 服务端可以正常接受消息 客户端知道了 客户端可以正常发送消息 客户端知道了 客户端可以正常接受消息 客户端知道了 服务端可以正常接受消息 客户端知道了 服务端可以正常发送消息 3、客户端再回给服务端一个消息 此时: 服务端知道了 客户端可以正常发送消息 服务端知道了 服务端可以正常接受消息 客户端知道了 客户端可以正常发送消息 客户端知道了 客户端可以正常接受消息 客户端知道了 服务端可以正常接受消息 客户端知道了 服务端可以正常发送消息 服务端知道了 服务端可以正常发送消息 服务端知道了