初识Retrofit

添加依赖

//引入retrofit
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
//引入json转换器,方便将返回的数据转换为json格式
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'

权限

    <!--访问网络-->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--读取内存 (6.0之前)-->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--读写内存 (6.0之前)-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

retrofit介绍

互联网上的资料很多很杂,在收集资料初步了解后,我先粗糙地认为:Retrofit 适用于与 Web 服务器提供的 API 接口进行通信。

当你想要做更多的 HTTP 操作时,可以使用 OkHttp,Retrofit的底层也是由 OkHttp 网络加载库来支持的。

关于 Retrofit 的原理,有三个十分重要的概念:『注解』,『动态代理』,『反射』。将会在以后逐步进行分析

初步使用

假设我们首先要访问这个URL:http://www.jianshu.com/u/6b74d8580d64

注解
@GET和@Path

1.首先定义一个baseUrl:(http://www.jianshu.com)
2.定义get请求

public interface APIInterface {
  @GET("/u/{id}")
  Call<TestModel> getData(@Path("id") String id);
}

这里出现了@GET和@Path注解
@GET的作用就是说明请求方式,而后面的参数相当于baseUrl+/u/{id};
@Path的作用相当于占位符,由它的参数指定{id}的值,例如这里如果传入的参数id值为6b74d8580d64,那么此时访问的链接即为http://www.jianshu.com/u/6b74d8580d64

@Query和QueryMap

@Query作用是添加一个参数

//如12306的查询接口https://kyfw.12306.cn/otn/lcxxcx/query?
//purpose_codes=ADULT&queryDate=2016-03-18&from_station=BJP&to_station=CDW,写法如下:
@GET("/otn/lcxxcx/query")
Call<Result> query(@Query("purpose_codes") String codes, @Query("queryDate") String date,
@Query("from_station") String from, @Query("to_station") String to)

@QueryMap作用同@Query,但它可以添加多个键值对参数
未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,118评论 25 709
  • Retrofit用法详解 一、简介 Retrofit是Square公司开发的一款针对Android网络请求的框架,...
    流水潺湲阅读 890评论 0 6
  • 一、简介 Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于...
    Devil不加V阅读 615评论 0 0
  • Retrofit 实际上并不能说是一个网络请求框架,它其实是对 okHttp 这个网络请求框架在接口层面的封装,网...
    EmanLu阅读 1,093评论 0 2
  • 关键词:分娩医疗化,剖后顺 在孕期开始前,我就看到过有妈妈剖后顺。当时不理解,然很佩服。 很多人问我,为啥要顺产?...
    新媒体运营苏苏阅读 931评论 0 0