@Delete with body,Non-body HTTP method cannot contain @Body ## 使用retrofit进行delete请求时,后台接口定会了以body的格式...我一定要解决, 我强制更改了父类get函数的返回值,以为能通过!...,于是我下一个免登陆场景使用了此方案,token是服务器返回的字符串。...,这样也报错,显示token不能为空,难道我在不确定一个值的时候value还不能加入空,我不得不用下面方式构建参数, Map parameters = new HashMap...2.0 超能实践(三),轻松实现文件/图片上传 Retrofit 2.0 超能实践(四),完成大文件断点下载 基于Retrofit2.0 封装的超好用的RetrofitClient工具类 玩转IOC,
当我在刚开始学习 Retrofit2 的时候并不知道Retrofit2是什么东西,后来逐渐了解 “它可能是一个方便我们网络请求的库 ,可以帮我们让请求网络变得更灵活、易于维护”。...我在学习Android期间就是哪里有请求就放哪里,后来有人告诉我要集中存放。于是后来就建立一个AppURL.java所有地址都存放这里。...需要注意的是converter-gson和retrofit版本号应为一致,在这里我都用2.1.0 创建Bean 创建一个JavaBean,用于解析服务器返回数据。...表单(FormUrlEncoded) 我们可以使用@FormUrlEncoded注解来发送表单数据。使用 @Field注解和参数来指定每个表单项的Key,value为参数的值。...因为在build()方法中会判断是否为空,如果我们没有添加okhttpclient 则就是空了,那么retrofit会自动给我们添加了一个new OkHttpClient(); execute是同步执行
,参数值可以为空,为空时,忽略该值,当传入一个List或array时,为每个非空item拼接请求键值对,所有的键是统一的,如:name=张三&name=李四&name=王五。...,参数值可以为空,为空时,则忽略。...使用String.valueOf()和URL编码将值转换为字符串。 使用@Path 注解 定义的参数的值不能为空,参数值默认使用URL编码。...2、@Header:作用于方法的参数,用于添加请求头 使用 @Header 注解 定义的请求头可以为空,当为空时,会自动忽略,当传入一个List或者array时,为拼接每个非空的item的值到请求头中。...我们使用表单上传文件时,必须让form表单enctype等于multipart/form-data。
于是,打群架版本的 QueryMap 横空出世了,使用方法很简单,我就不多说了。...在实验时,我上传了一个只包含一行文字的文件: Visit me: http://www.println.net 那么我们去服务端看下我们的请求是什么样的: HEADERS ?...1.5 Converter,让你的入参和返回类型丰富起来 1.5.1 RequestBodyConverter 1.4.3 当中,我为大家展示了如何用 Retrofit 上传文件,这个上传的过程其实。。...问题来了,如果请求得到的 Json 字符串与返回值类型不对应,比如: 接口返回的 Json 字符串: {"err":0, "content":"This is a content....3.1 继续简化文件上传的接口 在 1.5.1 当中我们曾试图简化文件上传接口的使用,尽管我们已经给出了相应的 File -> RequestBody 的 Converter,不过基于 Retrofit
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢...@Multipart 作用:表示发送form-encoded的数据(适用于 有文件 上传的场景) 每个键值对需要用@Part来注解键名,随后的对象需要提供值。...@Part & @PartMap 作用:发送 Post请求 时提交请求的表单字段 与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景 具体使用:与...xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml,该值为空即可 //...type:语言自动检测时为 null,为 null 时可为空。
今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。...@Multipart 作用:表示发送form-encoded的数据(适用于 有文件 上传的场景) 每个键值对需要用@Part来注解键名,随后的对象需要提供值。...@Part & @PartMap 作用:发送 Post请求 时提交请求的表单字段 与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景 具体使用:...xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml,该值为空即可 //...type:语言自动检测时为 null,为 null 时可为空。
今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。...@Part & @PartMap 作用:发送 Post请求 时提交请求的表单字段 与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景 具体使用:与 @Multipart...xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml,该值为空即可 //...type:语言自动检测时为 null,为 null 时可为空。...接下来,我将继续分析与 Retrofit 配合使用的 RxJava,有兴趣可以继续关注Carson_Ho的安卓开发笔记
前言 最近博客的产出确实很少,因为博主我正在写一本Android进阶书籍,两头很难兼顾,但是每个月也得至少发一篇博客。...上一篇我们介绍了Retrofit的使用方法,这一篇我们照例来学习Retrofit的源码。 1.Retrofit的创建过程 当我们使用Retrofit请求网络时,首先要写请求接口: ?...注释1处调用了createCallAdapter方法,它最终会得到我们在构建Retrofit调用build方法时adapterFactories添加的对象的get方法,Retrofit的build方法部分代码...当我们得到Call对象后会调用它的enqueue方法,其实调用的是ExecutorCallbackCall的enqueue方法,而从注释1处可以看出ExecutorCallbackCall的enqueue...根据返回的不同的状态码code值来做不同的操作,如果顺利则会调用注释2处的代码,接下来看toResponse方法里做了什么: ?
请求体是是是一个表单数据 表示发送form-encoded的数据,每个键值对需要用@Filed来注解键名,随后的对象需要提供值 @Multipart 请求体是一个支持文件上传的表单数据 表示发送...& @PartMap 发送 Post请求 时提交请求的表单字段,与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景,与 @Multipart 注解配合使用...实例2 上传文件 一定要使用 Multipart 关于文件 我采用的是 @Part MultipartBody.Part public interface IInfo {...实例 上传文件+字段的时候 必须变为RequestBody 参数 方可才能上传 Retrofit retrofit2 = new Retrofit.Builder() ....大体使用情况,接下来就简单的介绍RxJava的使用,Retrofit 与RxJava 一百度就很多原理之类的大体说的都差不多,大同小异.我主要以实战为主,如何使用 稍带点基础… 初始化Retrofit的时候的必要配置
刚开始我上传到了 GitHub,但发现经常会发生灵异事件,导致数据无法访问或者速度超慢,后来又上传到了九牛云。 这部分内容大家看一下就好了,毕竟不是常规的做法。...在官方 Material Design 的色板里面,我选用了这一套: image.png 对应的,color 文件的主题色值修改如下: #607d8b...setContentView 的地方修改为: binding = DataBindingUtil.setContentView(this, R.layout.activity_index);复制代码 当我要使用布局里的...Retrofit 2 Retrofit 的厉害之处我就不多说了,网上的教程很多的,我只讲最最简单的用法。...下面看看 Realm 的简单使用。
image.png 每个键值对需要用@Filed来注解键名,随后的对象需要提供值。...既可以上传键值对,也可以上传文件。...当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件...,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。...@Path 作用:URL地址的缺省值 @Url 作用:直接传入一个请求的 URL变量 用于URL设置,当有URL注解时,@GET传入的URL就可以省略。
2)后缀名白名单 除了结合各种服务器解析特性,较常用的是Null Byte Injection空字节注入,插入空字节值的原因是某些应用程序服务器脚本语言使用c/c++库来检查文件名和内容。...一般使用intruder同时发两个包:上传文件+访问webshell地址: 8)其他技巧 A.多个分号绕过: 文件解析时,可能解析不到文件名,导致绕过。...、构造更多的点、符号等都是可以尝试的技巧,有时会碰到上传文件无法抓到包的情况,那可能是上传时转化为了流文件,建议放弃。...Tips:尝试上传超大文件,可能造成报错信息利用/Dos等攻击 2)Pixel floodattack 像素洪水攻击,需要准备一个5kb,260x260像素的图像。...图像一旦上传,服务器通过将“整个图像”加载到内存中,它会尝试将4128062500像素分配到内存中,从而充斥内存并导致DoS。
对项目的基本介绍 1.整个框架主要是给MVVM框架使用的,自己写完interface接口后,通过自定义的注解就能自动生成接口方法 2.用Kotlin的Flow去代替Rxjava,因为我发现RxJava功能很强大...所以先进去看看apiService好了 可以看到apiService是BaseRepository的变量 而我们生成的Repository都是继承BaseRepository的 [1240] 当我们调ConfigRepository...类中的方法时候,就会将ConfigRepository传入findNeedType [1240] 而findNeedType方法就会将ConfigRepository对应的ConfigService得到并且返回出去...比如在刚进入主页时,使用页面初始化CacheFirst 页面初始化后,再次下拉加载数据,使用NetCache 在当前主页上拉加载,使用NetOnly 此时一个接口会分别使用三个不同的缓存策略 所以用isNeedAddParameter...所以必须在前面的注解收集完毕后,当我再次收集使用过NetStrategy注解的方法时,拿到方法名,再与repositoryMap中储存的类的方法名做比较,如果一致,则表示该方法使用了NetStrategy
前言 在上一篇Android网络编程(九)Retrofit2前篇[基本使用]中我们了解了Retrofit的最基本的GET方式访问网络的写法以及请求参数的简单介绍。...这一篇我们来详细的了解Retrofit的注解。 1.GET请求访问网络 动态配置URL地址:@Path Retrofit提供了很多的请求参数注解,使得请求网路时更加便捷。在这里我们仍旧访问淘宝ip库。...在注释1处,传入”service”来替换 @GET注解中的{path}的值。...动态指定查询条件:@Query与@QueryMap 在上一篇中我们用@Query来动态的替换ip地址为了能更方便的得到该ip所对应的地理信息: ?...多个文件上传:@PartMap ? 和单文件上传是类似的,只是使用Map封装了上传的文件,并用@PartMap注解来标示起来。其他的都一样,这里就不赘述了。
上一篇文章深入浅出Retrofit2.x(一)中,我们讲解了 Retrofit 的最基本用法,以及 GET 请求示例,非常简单,相信大家都已经会使用了,本篇文章将继续介绍 Retrofit 的一些其他的一些常用用法...@Path时,path对应的路径不能包含”/”,否则会将其转化为%2F,在遇到想动态的拼接多节url时,还是使用@Url吧 @Headers({"Content-Type:application...会使用url的全域访问,当为非全域时,会拼接到BASE_URL的后面) @Headers({"Content-Type: application/json", "Accept: application...@Query,我们可以使用 @QueryMap 使用方法很简单,我就不多说了。...@FiledMap 和 @Filed 作用一致,用于不确定表单参数 @Part 用于表单字段,@Part 和 @PartMap 与 @Multipart 注解结合使用,适合文件上传的情况 @PartMap
关于Retrofit的学习,我算是比较晚的了,而现在Retrofit已经是Android非常流行的网络请求框架了。...之前,我没有学过Retrofit,但最近公司的新项目使用了Retrofit、Rxjava和OkHttp来进行封装,使用起来非常简便,增加代码的美观程度,也降低了耦合度,这是一个非常棒的框架,特别是这三者一起使用...Retrofit的使用 关于Retrofit的使用,其实还是很简单的,而且逻辑思路也比较清晰,所以开发者是很容易上手的。...compile ‘com.squareup.retrofit2:converter-gson:2.3.0’ 上面除了添加Retrofit依赖,还添加了gson依赖,来解析请求得到的json数据。...文件上传 使用@Part注解来表示单个文件上传,而@PartMap注解跟单文件上传是类似的,是不过是使用了Map集合来封装了上传的文件,即多文件上传。
去年我写了一个Android网络框架Novate, 基于Retrofit和RxJava封装的链式网络框架, 支持okhttp的调用分格,又兼容Retrofit注入方式,并支持RxJava调用的链式操作...扩展性强:支持自定义的Retrofit的API,默认Api无法满足时可自定义自己的Service 悠雅方便:支持统一请求访问网络的流程控制,以方便帮你完美加入Processbar进度。...这里主要介绍怎么使用Novate上传文件: Novate提供了2种方式上传文件。...body和part模式,Body不包含key值,part包含key值。 RxUploadWithBody 以Body方式post数据,可以上报文件,图片等。...Api 姿势 Novate默认的API让你不爽时,Novate同样支持你自己Retrofit的ApiService。
上一篇文章深入浅出Retrofit2.x(一)中,我们讲解了 Retrofit 的最基本用法,以及 GET 请求示例,非常简单,相信大家都已经会使用了,本篇文章将继续介绍 Retrofit 的一些其他的一些常用用法...@Path时,path对应的路径不能包含”/”,否则会将其转化为%2F,在遇到想动态的拼接多节url时,还是使用@Url吧 @Headers({"Content-Type:application...会使用url的全域访问,当为非全域时,会拼接到BASE_URL的后面) @Headers({"Content-Type: application/json", "Accept: application...@Query,我们可以使用 @QueryMap 使用方法很简单,我就不多说了。...,默认接受的类型是 Map,可用于实现多文件上传@Path用于 url 中的占位符@Query用于 GET 请求的 url 中指定 key=value 参数@QueryMap和 @Query 使用类似@
领取专属 10元无门槛券
手把手带您无忧上云