retrofit

OKhttp PUT example

孤街醉人 提交于 2020-05-11 04:07:16
问题 My requirement is to use PUT , send a header and a body to server which will update something in the database. I just read okHttp documentation and I was trying to use their POST example but it doesn't work for my use case (I think it might be because the server requires me to use PUT instead of POST ) . This is my method with POST : public void postRequestWithHeaderAndBody(String url, String header, String jsonBody) { MediaType JSON = MediaType.parse("application/json; charset=utf-8");

rxjava、retrofit 简单&完善封装

笑着哭i 提交于 2020-05-08 09:50:06
该封装中除了原有的功能,额外包含什么功能先说一下,另外先展示基本使用方式。看是不是你想要的 1、公共参数的添加 2、token的自动刷新 3、错误请求的自动处理 4、单例模式以及工程模式的retrofit,以适应出现不同域名请求的情况 使用方式如下 1、接口方法定义 /** * 示例 * 上传名字 * <BaseResponse<Object>> BaseResponse为封装的公共请求结果实体,Object可以改成对应自己想要的实体 */ @POST("*********") Observable<BaseResponse<Object>> uploadName(@Query("name") String name); 2、调用方法 RxHelper.deploy(RetrofitUtil.getRetrofit().uploadName("小明"), new NetCallback<StudentInfo>() { @Override public void onCompleted(StudentInfo studentInfo) { //StudentInfo studentInfo 这个要和 方法定义中的BaseResponse的泛型<studentInfo>保持一致 } }); 以上就是使用的方法,写这个的初衷是因为我懒,抱着磨刀不误砍柴工的想法,所以封装的尽可能简单

安卓开发常用网络请求框架OkHttp、Volley、XUtils、Retrofit对比

杀马特。学长 韩版系。学妹 提交于 2020-05-05 18:02:37
网络请求框架总结 1.xutils 此框架庞大而周全,这个框架可以网络请求,同时可以图片加载,又可以数据存储,又可以 View 注解,使用这种框架很方便,这样会使得你整个项目对它依赖性太强,万一以后这个库不维护了,或者中间某个模块出问题了,这个影响非常大,所以在项目开发时,一般会更喜欢选择专注某一领域的框架。 2.OkHttp Android 开发中是可以直接使用现成的api进行网络请求的,就是使用HttpClient、HttpUrlConnection 进行操作,目前HttpClient 已经被废弃,而 android-async-http 是基于HttpClient的,可能也是因为这个原因作者放弃维护。 而OkHttp是Square公司开源的针对Java和Android程序,封装的一个高性能http请求库,它的职责跟HttpUrlConnection 是一样的,支持 spdy、http 2.0、websocket ,支持同步、异步,而且 OkHttp 又封装了线程池,封装了数据转换,封装了参数使用、错误处理等,api使用起来更加方便。可以把它理解成是一个封装之后的类似HttpUrlConnection的东西,但是在使用的时候仍然需要自己再做一层封装,这样才能像使用一个框架一样更加顺手。 3.Volley Volley是Google官方出的一套小而巧的异步请求库

Android 网络请求Retrofit + RxJava

。_饼干妹妹 提交于 2020-05-05 18:01:59
一、背景 经常看到项目用Retrofit+RxJava+RxAndroid的框架,为了看懂项目的结构。现在来了解一下,Retrofit: Retrofit是Square 公司开发的一款正对Android 网络请求的框架。底层基于OkHttp 实现,OkHttp 已经得到了google 官方的认可OkHttp: 也是Square 开源的网络请求库 RxJava:RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括得非常精准。总之就是让异步操作变得非常简单。 各自的职责:Retrofit 负责请求的数据和请求的结果,使用接口的方式呈现,OkHttp 负责请求的过程,RxJava 负责异步,各种线程之间的切换RxJava + Retrofit + okHttp 已成为当前Android 网络请求最流行的方式。 二、Retrofit 写一个网络请求 1,首先,要使用Retrofit ,你肯定需要把它的包引入,在你的build.gradle文件中添加如下配置: compile

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

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--

一款聚合电影、电视剧、综艺节目、动漫、游戏影音软件开源啦!

会有一股神秘感。 提交于 2020-04-30 11:34:01
今天主要分享lxw开源他的聚合软件:影视天地(Android 客户端),涵盖电影、电视剧、综艺节目、动漫、游戏五大类别的资源。整合两大资源搜索引擎,连接互联网千万数量级的资源库。支持视频资源在线播放、边下边播,不限速下载,不等待播放。 项目特色:本项目实现了资源列表、详情、搜索,切换资源库、搜索引擎,跳转第三方软件下载、热修复、推送分享等核心功能,应用 Retrofit2+RxJava2+Glide 等主流框架。二次封装网络请求框架,实现异常和错误的统一处理,集成微信分享、极光推送、阿里第二代热修复框架 HotFix2。 效果图如下: 启动页 首页 情页 搜索页 切换主题 部分代码: 常量类: public class Constant { public static ConfigModel configModel; /** * 网络请求 */ public static String SOURCE_TYPE; public static final String KEY_SOURCE_TYPE = "SOURCE_TYPE" ; public static final String SOURCE_TYPE_1 = "1" ;// 飘花电影 public static final String SOURCE_TYPE_2 = "2" ;// 猫扑电影 public static

Retrofit fetch data from Mysql based on a user inputted string [closed]

风格不统一 提交于 2020-04-30 09:25:50
问题 Closed . This question needs details or clarity. It is not currently accepting answers. Want to improve this question? Add details and clarify the problem by editing this post. Closed 2 days ago . I am trying to fetch specific columns email from a table using mysql using retrofit using android data. My DB table has the useremail collumn and my ImageList Model Class has the @SerializedName("useremail"). API INTERFACE public interface ApiInterface2 { String BASE_URL = "10.0.2.2/uploadmultiple/"

仿最新BiliBili客户端(已开源)

烈酒焚心 提交于 2020-04-28 10:58:04
前言 该项目仿照B站的Android客户端进行开发,初衷是想学习流行的Android技术,但是没有数据资源。因为喜欢逛B站,而且B站的Android客户端又是Google推荐的MD设计规范,于是花了些时间研究B站的网络请求,最后成功搞定,与@Android_ZzT同学达成一致,合作开发这个模仿B站的练习项目。该项目在工作之余开发,所以更新时间不定。 前期准备 一、B站网络请求抓包 首先是对B站的网络请求进行抓包,环境是mac,开始尝试使用Charles,由于B站的网络请求大多为Https,Charles的证书设置总是不成功(没找到正确的打开方式),无法抓到Https的包,就放弃了。 这里推荐mitmproxy,是一款在github上托管的开源抓包工具。 官网地址:http://mitmproxy.org/ github地址:https://github.com/mitmproxy/mitmproxy 教程:使用mitmproxy进行移动端的HTTP抓包 Tips:Https抓包需要安装证书,大部分手机按照官方文档或是教程文章都可以成功安装,但是小米手机无法正常下载,官方文档中提到证书会放在~/.mitmproxy目录下,所以可以手动传到手机中进行安装。 在设置好证书和代理之后,我们就可以开始进行https抓包了,先打开app首页 观察mitmproxy并找到对应网络请求

andorid jar/库源码解析之retrofit2

牧云@^-^@ 提交于 2020-04-27 07:45:56
目录: andorid jar/库源码解析 Retrofit2:   作用:      通过封装okhttp库,来进行web通讯,并且使用动态代理的方式,来调用接口地址,通过回调赋值结果。   栗子:   定义一个接口,用于访问使用。 public interface IServiceApi { @FormUrlEncoded @POST( "login" ) Call <LoginResult> login(@Field("name") String name, @Field("pwd" ) String pwd); @GET( "getinfo" ) Call <UserInfo> getinfo(@Query("token" ) String token); @GET( "getinfo2" ) Call <UserInfo> getinfo2(@Query("token" ) String token); }   调用接口1.可以在main中调用,因为是通过异步执行(enqueue) Retrofit retrofit = new Retrofit.Builder().addConverterFactory(GsonConverterFactory.create()).baseUrl("http://192.168.86.11:8087/" ).build();