首页
学习
活动
专区
圈层
工具
发布

Retrofit解析2之使用简介

()转换为String 并进行URL编码,使用该注解定义的参数,参数值可以为空,为空时,忽略该值,当传入一个List或array时,为每个非空item拼接请求键值对,所有的键是统一的,如:name=张三...编码,当参数值为null是=时,会自动忽略,如果传入的是一个List或者array,则为每一个非空的item拼接一个键值对,每一个键值对中的键是相同的,值就是非空的item的值。...如:name=张三&name=李四&name=王五,如果itme的值有空格,在拼接的时候会自动忽略,例如某个item的值为:张 三,则拼接后为name=张三。...为空时,则忽略。...同理,Retrofit会判断@Part的参数类型,如果参数为okhttp3.MultipartBody.Part,则Retrofit会把RequestBody封装成MultipartBody,再把Part

5.3K30

Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

@Query和@QueryMap 作用:用于 @GET 方法的查询参数(Query = Url 中 ‘?’...,@GET传入的URL就可以省略 // 当GET、POST...HTTP等方法中没有设置Url时,则必须使用 {@link Url}提供 } 汇总 步骤4:创建 Retrofit 实例...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的URL...doctype 值是 xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml...,该值为空即可 // type:语言自动检测时为 null,为 null 时可为空。

3.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

    @Query和@QueryMap 作用:用于 @GET 方法的查询参数(Query = Url 中 ‘?’...,@GET传入的URL就可以省略 // 当GET、POST...HTTP等方法中没有设置Url时,则必须使用 {@link Url}提供 } 汇总 步骤4:创建 Retrofit 实例...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的URL...doctype 值是 xml,则去除该值,若 doctype 值是 json,该值为空即可 // xmlVersion:如果 doctype 值是 json,则去除该值,若 doctype 值是 xml...,该值为空即可 // type:语言自动检测时为 null,为 null 时可为空。

    2.5K10

    Retrofit解析8之核心解析——ServiceMethod及注解2

    @Url if (annotation instanceof Url) { //默认是在这里给gotUrl赋值的,且只能赋值一次,如果gotUrl==true,则说明之前赋值过...must not come after a @Query"); } //如果设置了relativeUrl,说明已经动态配置过url,所以这时候不能再使用@Url 注解..."@Path parameters may not be used with @Url."); } //如果设置了relativeUrl为null,无法进行动态配置,所以会抛异常...获取Converter.Factory对象,调用这个对象的stringConverter()来获取Converter对象,如果Converter不为空,则证明取到了,如果没有取到,则调用默认的转化器来转化...如果想在URL上添加查询字段,就要使用@Query 注解。用@ Body 来表示一个请求体。一个对象的实例将会被Converter.Factory的实例转化为网络请求。

    1.4K20

    Retrofit解析9之流程解析

    所以我们把整个流程分解为5大部分 1、Retrofit初始化 2、发起网络请求 3、执行请求 4、处理响应 (一)、Retrofit初始化 具体代码如下: .baseUrl(API_URL...说白了,就是根据注解和返回值的类型,判断,如果你这个CallAdapter支持则返回对应的CallAdapter,如果不支持则返回null。...说白了,就是根据返回值类型、参数注解、方法注解来获取一个对应的Converter,如果你这个Converter.Factory支持则返回对应的Converter,则返回一个对应的Converter,如果不支持则返回...3、如果有设置请求头,则获取请求头的值,并添加到Builder的headers 中 4、如果请求类型是Multipart的,则设置isMultipart =true 5、如果请求类型是isFormEncoded...如果请求成功则调用parseResponse来解析响应体,解析过程中没有问题则调用callSuccess()方法,如果解析出现问题则调用callFailure()方法,其实callFailure()内调用的是

    2.3K41

    扔掉okhttp、httpClient,来试试这款轻量级 HTTP 客户端框架,吹爆!

    对于Retrofit而言,如果baseUrl=http://localhost:8080/api/test/,方法请求路径如果是person,则该方法完整的请求路径是:http://localhost:...而方法请求路径如果是/person,则该方法完整的请求路径是:http://localhost:8080/person。 注入使用 将接口注入到其它Service中即可使用!...下面以"给指定请求的url后面拼接timestamp时间戳"为例,介绍下如何使用注解式拦截器。...拦截器的accessKeyId和accessKeySecret字段值会依据@Sign注解的accessKeyId()和accessKeySecret()值自动注入,如果@Sign指定的是占位符形式的字符串...@GET Map test3(@Url String url,@Query("name") String name); DELETE请求添加请求体 @HTTP(method

    1.1K10

    深入浅出Retrofit2.x(二)

    body 请求(适用于动态域名访问,当url为全域名时,会使用url的全域访问,当为非全域时,会拼接到BASE_URL的后面) @Headers({"Content-Type: application...和 @QueryMap 注解 @Query 其实相当于我们在请求时 Url 中 ‘?’...1 就是一个 @Query,如果我有多个 @Query,我们可以使用 @QueryMap 使用方法很简单,我就不多说了。...@PartMap 与 @Multipart 注解结合使用,适合文件上传的情况 @PartMap 用于表单字段,默认接受的类型是 Map,可用于实现多文件上传 @Path 用于 url 中的占位符 @Query...用于 GET 请求的 url 中指定 key=value 参数 @QueryMap 和 @Query 使用类似 @Url 指定请求路径,可以是全路径和相对路径 3.4 请求和响应格式注解 注解 说明

    1.5K10

    安卓上如何优雅地使用网络请求丨深入浅出Retrofit2.x(二)

    body 请求(适用于动态域名访问,当url为全域名时,会使用url的全域访问,当为非全域时,会拼接到BASE_URL的后面) @Headers({"Content-Type: application...和 @QueryMap 注解 @Query 其实相当于我们在请求时 Url 中 ‘?’...1 就是一个 @Query,如果我有多个 @Query,我们可以使用 @QueryMap 使用方法很简单,我就不多说了。...与 @Multipart 注解结合使用,适合文件上传的情况@PartMap用于表单字段,默认接受的类型是 Map,可用于实现多文件上传@Path用于 url 中的占位符@Query用于 GET 请求的...url 中指定 key=value 参数@QueryMap和 @Query 使用类似@Url指定请求路径,可以是全路径和相对路径 3.4 请求和响应格式注解 注解说明@FormUrlEncoded表示请求发送编码表单数据

    1.2K10

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

    注1:{占位符}和PATH尽量只用在URL的path部分,url中的参数使用Query和QueryMap 代替,保证接口定义的简洁 注2:Query、Field和Part这三者都支持数组和实现了Iterable...@POST("blog") Call> createBlog(@Body Blog blog); 被@Body注解的的Blog将会被Gson转换成RequestBody发送到服务器...retrofit) { return null; } // 这里用于对Field、FieldMap、Header、Path、Query、QueryMap注解的处理...7.2 Retrofit的Url组合规则 ? 从上面不能难看出以下规则: 如果你在注解中提供的url是完整的url,则url将作为请求的url。...如果你在注解中提供的url是不完整的url,且不以 / 开头,则请求的url为baseUrl+注解中提供的值 如果你在注解中提供的url是不完整的url,且以 / 开头,则请求的url为baseUrl的主机部分

    2.6K70
    领券