首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

HTTP 的基础概念

APP 用户通过点击或其它交互触发联网需求 -> APP 代码执行调用拼装 HTTP 报文并发送请求到服务器 -> 服务器处理请求后发送响应报文给手机 -> 手机接收到响应报文并做相应处理(接收到...Body 一般用于下载比较大的文件,从响应报文头获取文件大小等属性 状态码(Status Code) 状态码全部表现为三位数字,用于对应响应结果的类型描述(如「200 请求成功」 「404 内容未找到...2xx:成功;200OK)、201(创建成功)。 3xx:重定向;301(永久移除)、302(暂时移动)、304(内容未改变)。...格式如下: HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Content-Length: 853 <!...格式: HTTP/1.1 200 OK Content-Type: text/html Transfer-Encoding: chunked 4 Chun 9 ked Trans 12 fer Encoding

82710

【建议收藏】Android实现Rxjava2+Retrofit完美封装

去年的时候学习了Rxjava和Retrofit的基本用法,一直没有在实际项目中运用。今年开做新项目,果断在新项目中引入了RxJava和Retrofit。...构建初始化Retrofit的工具类IdeaApi 通过GsonConverterFactory获取真实响应数据 封装DefaultObserver处理服务器响应 处理加载Loading 管理Retrofit...我们会事先和服务器约定成功时的code值,比如200表示请求成功。通常在请求服务器数据过程中免不了会出现各种错误。例如用户登录时密码错误、请求参数错误的情况。...param response 服务器返回的数据 */ abstract public void onSuccess(T response); /** * 服务器返回数据,响应码不为...鉴于本人能力有限,其中也避免不了出现不当之处。还请大家多多包涵。另外,在投稿时文章可能还存在很多处理不优雅的地方,比如对响应数据的处理以及对Loading的处理。

1.8K50

网络延迟与带宽性能专项测试

在笔者的方案中,单位数据样本是计算测试APP发出HTTP GET请求,到收到 200 OK响应所耗时长。如下图,这次延迟的数据,计算的是发出52号包,到收到59号包所耗用的时长222ms。...笔者选用了Retrofit,而不是自己去实现一大堆网络通信的东西。当然,作为一个深爱技术的测试,深入去理解下原理还是非常有必要的(Retrofit官网)。...如下代码中,需要注意下call.execute()的第一次执行,start的时间点是在TCP三次握手首包SYN之前,end是在收到HTTP 200 OK回应之后,所以首包的时延会比较长。...其实在Android的流量类android.net.TrafficStats中,getRxBytes和getTxBytes是隐藏方法,而getTotalRxBytes()和getTotalTxBytes...中位数却表明样本B的延迟要远小于样本A。从方差分析,样本B中肯定是存在某些波动很大的数据导致均值偏大。

7.3K00

网络请求-Android篇(Okhttp和Retrofit)

拦截器允许在发送请求前、收到响应后以及其他阶段对HTTP流量进行拦截和处理。例如:拦截器可以修改请求的URL、请求方法、请求头部、请求体等。这对于添加身份验证头、设置缓存控制头等场景很有用。...Response response = chain.proceed(request); //后置处理:收到响应后...的介绍和基本使用   Retrofit是一个基于OkHttp的强大且易于使用的网络请求库,用于在Android和Java应用程序中进行网络通信。...Retrofit的基本用法如下:   1.添加依赖项:在您的Android或Java项目中的build.gradle文件中添加Retrofit的依赖项     implementation 'com.squareup.retrofit2...比如,服务器给我们返回的Json字符串如下: { "code": 0, "msg": "ok", "message": "ok",

75030

你真的会用Retrofit2吗?Retrofit2完全教程

,如果你还没有看过,可以先去看看,虽然是英文,代码才是最好的教程不是么?...,"msg":"OK","data":{"id":2,"date":"2016-04-15 03:17:50","author":"怪盗kidou","title":"Retrofit2 测试2","content...只支持将HTTP的响应体转换换为ResponseBody, 这也是什么我在前面的例子接口的返回值都是 Call, 如果响应体只是支持转换为ResponseBody的话何必要引用泛型呢, 返回值直接用一个...4、RxJava与CallAdapter 说到Retrofit就不得说到另一个火到不行的库RxJava,网上已经不少文章讲如何与Retrofit结合,这里还是会有一个RxJava的例子,不过这里主要目的是介绍使用..., msg='OK', data=[Blog{id=1, date='2016-04-15 03:17:50', author='怪盗kidou', title='Retrofit2 测试1', content

2.2K70

Carson带你学Android:RxJava线程控制(含实例讲解)

在 Gradle加入Retrofit库的依赖 build.gradle dependencies { // Android 支持 Rxjava // 此处一定要注意使用RxJava2的版本 compile...Override public void onError(Throwable e) { Log.d(TAG, "请求失败...退出当前Activity 冲突:此时如果回到主线程更新 UI,App会崩溃 解决方案:当 Activity退出时,调用 Disposable.dispose()切断观察者和被观察者的连接,使得观察者无法收到事件...、Retrofit联合使用汇总(含实例教程) Carson带你学Android:优雅实现网络请求嵌套回调 Carson带你学Android:网络请求轮询(有条件) Carson带你学Android...:网络请求轮询(无条件) Carson带你学Android:网络请求出错重连(结合Retrofit) Carson带你学Android:合并数据源 Carson带你学Android:联想搜索优化

75020

Retrofit解析6之面向接口编程

OK,那我们来看下这个接口的源码看下Retrofit是怎么设计的。...每一次调用都产生自己的HTTP请求和对应的响应 对儿。如果出现了在避免轮询或者失败重试的情况,可以 调用clone()方法 复制 可以对具有相同的web服务器进行 具有相同参数的 请求。...泛型参数 代表成功的响应类的类型 这个接口就两个方法,一个对应成功的回调,一个对应失败的回调 1、void onResponse(Call call, Response response...适配前和适配后的Call 还是不一样的,从enqueue方法中可以看到在callbackExecutor执行了回调,callbackExecutor上文已经介绍了,在Android平台就是UI主线程。...实际上他们混淆了Java中的interface和面向接口编程的"接口的"概念。

1K30

Android中极简的js与java的交互库-SimpleJavaJsBridge

但是这种方法存在一个严重的漏洞,虽然官方在android4.4的时候给出了相应的解决方案,但是android4.4以下的版本还得解决该漏洞,因此一些巨人们就开始琢磨着解决这个坑,第二种方法由此诞生。...response 一个response封装了状态信息(可以知道处理的结果是成功还是失败)和处理结果。 如何接收对方发送的response消息?...在接收到response时,从response解析这个id值,根据id值查找到回调接口。 因此request和response中还得包含回调id这个值。...通过它java可以给js发送消息,并且接收js的响应消息;同时js也可以给java发送消息,同样接收java的响应消息。...解决这个问题思路来自于鼎鼎有名的RetrofitRetrofit通过注解的方式解决了构建request和解析response的问题,因此注解也可以解决我现在遇到的问题。那我们就来认识下这些注解。

1.7K30

网络请求框架OkHttp3全解系列(一):OkHttp的基本使用

所需 预备知识: HTTP协议详解 HTTP请求报文和响应报文 现在Android中的网络请求框架,基本都是okhttp和Retrofit一统天下,而Retrofit又是以okhttp为基础,所以系统学习...onFailure通常是connection连接失败或读写超时;onResponse是指,成功的从服务器获取到了结果,但是这个结果的响应码可能是404、500等,也可能就是200(response.code...如果response.code()是200,表示应用层请求成功了。此时我们可以获取Response的ResponseBody,这是响应体。...响应200,说明请求成功了。...其他请求方式像put、header、delete,主要在构建Request时把get()或post()换成put()、header()、delete()就可以了,一般在Android端很少用到。

25.2K52

Retrofit--使用Retrofit时怎样去设置OKHttp

推出的一个高解耦的网络框架,至于为什么又出来一个这个东东,想必可能是觉得使用OKHttp一般都需要自己再包一层吧,当然你也可以不用再自己费劲去封装,因为网上很多大牛前辈已经做了,你可以看鸿洋大神封装的OKHttp, Android...切入正题:我们先看一下Retrofit里面都包括那些东西吧: 我们可以看到Retrofit里面东西非常少,http包里面的注解的东西,剩下的就这几个类和这几个接口,因为Retrofit把网络请求交给了...OK (22ms) * Content-Type: plain/text * Content-Length: 6 * <-- END HTTP * } END GET * * <-- 200 OK (22ms) * Content-Type: plain/text * Content-Length:...); client.setCache(new Cache(httpCacheDirectory,10 * 1024 * 1024)); 先获取系统外部存储的路径,”xxx”可以自己命名,文件夹可以在 android

61990

Android常用库源码解析

如果您的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP。OkHttp还处理了代理服务器问题和SSL握手失败问题。...RealCall.enqueue() 被调⽤的时候⼤同⼩异,区别在于enqueue() 会使⽤ Dispatcher 的线程池来把请求放在后台线程进⾏,实质上使⽤的同样也是getResponseWithInterceptorChain...(包括重定向以及重试的⼀些中间请求和响应),并且看到的是完整原始数据,⽽不是没有加 Content-Length 的请求数据,或者 Body还没有被 gzip 解压的响应数据。...EventBus是一款针对Android优化的发布/订阅事件总线。...黏性事件 简单讲,就是在发送事件之后再订阅该事件也能收到该事件,跟黏性广播类似,但是它只能收到最新的一次消息,比如说在未订阅之前已经发送了多条黏性消息了,然后再订阅只能收到最近的一条消息。

1.1K10
领券