Retrofit2笔记

一、Retrofit使用

定义接口

public interface GitHub {

@GET("/repos/{owner}/{repo}/contributors")

Call<List<Contributor>> contributors(@Path("owner") String owner, @Path("repo") String repo);

}

Retrofit retrofit = new Retrofit.Builder().baseUrl("http://localhost:8080/").build();

GitHub github = retrofit.create(GitHub.class);

List contributors = call.execute().body();

地址以斜线结尾,注解中的地址不要以斜线开头.

二、Retrofit注解

1. GET相关

@GET("/repos/{owner}/{repo}/contributors")

Call> contributors(@Path("owner") String owner, @Path("repo") String repo);

result : contributors("square", "")


@Headers("Cache-Control: max-age=640000")

@GET("/")


@Headers({"X-Foo: Bar","X-Ping: Pong"})

@GET("/")


@GET("/")

Call foo(@Header("Accept-Language") String lang);


@GET("/search")

void list(@HeaderMap Map headers);


Accept: text/plain and Accept-Charset: utf-8

foo.list(ImmutableMap.of("Accept", "text/plain", "Accept-Charset", "utf-8"));


2. POST

除上述GET请求配置外,有Field, FieldMap,需要指定FormUrlEncoded

@FormUrlEncoded

@POST("/")

Call example(

@Field("name") String name,

@Field("occupation") String occupation);

Calling withfoo.example("Bob Smith", "President")yields a request body ofname=Bob+Smith&occupation=President.


@FormUrlEncoded

@POST("/things")

Call things(@FieldMap Map fields);

Calling withfoo.things(ImmutableMap.of("foo", "bar", "kit", "kat")yields a request body offoo=bar&kit=kat.


@Body 发送json格式POST body

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 前言 如果看Retrofit的源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态...
    李某人吖阅读 6,404评论 0 0
  • 1、去掉@FromUrlEncoded在post请求中使用@Field和@FieldMap,那么程序会抛出java...
    大帅飞阅读 1,566评论 0 0
  • 写在前面 本篇文章基于retrofit-2.1进行分析. 1. 各个注解的含义及使用 1.1 Body注解: 作用...
    NeWolf阅读 5,356评论 0 1
  • Retrofit用法详解 一、简介 Retrofit是Square公司开发的一款针对Android网络请求的框架,...
    流水潺湲阅读 4,436评论 0 6