retrofit 用法

Posted nakemind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了retrofit 用法相关的知识,希望对你有一定的参考价值。

在github上有一个retrofit的例子,获取论坛的信息

public class ForumService {

private static final String FORUM_SERVER_URL = "http://jsonplaceholder.typicode.com";
private ForumApi mForumApi;

public ForumService() {


RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Accept", "application/json");
}
};

RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(FORUM_SERVER_URL)
.setRequestInterceptor(requestInterceptor)
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
     //创建一个接口实例
mForumApi = restAdapter.create(ForumApi.class);
}

public ForumApi getApi() {

return mForumApi;
}

public interface ForumApi {

@GET("/posts")
public Observable<List<Post>>
getPosts();

@GET("/posts/{id}")
public Observable<Post>
getPost(@Path("id") int postId);

@GET("/comments")
public Observable<List<Comment>>
getComments(@Query("postId") int postId);

@POST("/posts")
public Observable<Post>
postPost(Post post);
}
}

代码中使用DetailPresenter 和ListPresenter
程序运行时显示列表:

列表发送请求:

GET http://jsonplaceholder.typicode.com/posts HTTP/1.1
Accept: application/json
User-Agent: Dalvik/2.1.0 (Linux; U; android 5.1.1; msm8909 Build/09_V2.7.1)
Host: jsonplaceholder.typicode.com
Connection: Keep-Alive
Accept-Encoding: gzip

 列表返回请求:

HTTP/1.1 200 OK
Date: Sat, 05 Aug 2017 16:09:16 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Set-Cookie: __cfduid=d15f00293daea59d11e3c3a068b17735b1501949356; expires=Sun, 05-Aug-18 16:09:16 GMT; path=/; domain=.typicode.com; HttpOnly
X-Powered-By: Express
Vary: Accept-Encoding
Access-Control-Allow-Credentials: true
Cache-Control: public, max-age=14400
Pragma: no-cache
Expires: Sat, 05 Aug 2017 20:09:16 GMT
X-Content-Type-Options: nosniff
Etag: W/"6b80-Ybsq/K6GwwqrYkAsFxqDXGC7DoM"
Via: 1.1 vegur
CF-Cache-Status: HIT
Server: cloudflare-nginx
CF-RAY: 389b05133149851a-HKG
Content-Length: 27520

[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\\nqui aperiam non debitis possimus qui neque nisi nulla"
},
{
"userId": 1,
"id": 3,
"title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
"body": "et iusto sed quo iure\\nvoluptatem occaecati omnis eligendi aut ad\\nvoluptatem doloribus vel accusantium quis pariatur\\nmolestiae porro eius odio et labore et velit aut"
},
{
"userId": 1,
"id": 4,
"title": "eum et est occaecati",
"body": "ullam et saepe reiciendis voluptatem adipisci\\nsit amet autem assumenda provident rerum culpa\\nquis hic commodi nesciunt rem tenetur doloremque ipsam iure\\nquis sunt voluptatem rerum illo velit"
},
{
"userId": 1,
"id": 5,
"title": "nesciunt quas odio",
"body": "repudiandae veniam quaerat sunt sed\\nalias aut fugiat sit autem sed est\\nvoluptatem omnis possimus esse voluptatibus quis\\nest aut tenetur dolor neque"
},
{
"userId": 1,
"id": 6,
"title": "dolorem eum magni eos aperiam quia",
"body": "ut aspernatur corporis harum nihil quis provident sequi\\nmollitia nobis aliquid molestiae\\nperspiciatis et ea nemo ab reprehenderit accusantium quas\\nvoluptate dolores velit et doloremque molestiae"
},
{
"userId": 1,
"id": 7,
"title": "magnam facilis autem",
"body": "dolore placeat quibusdam ea quo vitae\\nmagni quis enim qui quis quo nemo aut saepe\\nquidem repellat excepturi ut quia\\nsunt ut sequi eos ea sed quas"
},
{
"userId": 1,
"id": 8,
"title": "dolorem dolore est ipsam",
"body": "dignissimos aperiam dolorem qui eum\\nfacilis quibusdam animi sint suscipit qui sint possimus cum\\nquaerat magni maiores excepturi\\nipsam ut commodi dolor voluptatum modi aut vitae"
},
{
"userId": 1,
"id": 9,
"title": "nesciunt iure omnis dolorem tempora et accusantium",
"body": "consectetur animi nesciunt iure dolore\\nenim quia ad\\nveniam autem ut quam aut nobis\\net est aut quod aut provident voluptas autem voluptas"
},
{
"userId": 1,
"id": 10,
"title": "optio molestias id quia eum",
"body": "quo et expedita modi cum officia vel magni\\ndoloribus qui repudiandae\\nvero nisi sit\\nquos veniam quod sed accusamus veritatis error"
},
{
"userId": 2,
"id": 11,
"title": "et ea vero quia laudantium autem",
"body": "delectus reiciendis molestiae occaecati non minima eveniet qui voluptatibus\\naccusamus in eum beatae sit\\nvel qui neque voluptates ut commodi qui incidunt\\nut animi commodi"
},
{
"userId": 2,
"id": 12,
"title": "in quibusdam tempore odit est dolorem",
"body": "itaque id aut magnam\\npraesentium quia et ea odit et ea voluptas et\\nsapiente quia nihil amet occaecati quia id voluptatem\\nincidunt ea est distinctio odio"
},
{
"userId": 2,
"id": 13,
"title": "dolorum ut in voluptas mollitia et saepe quo animi",
"body": "aut dicta possimus sint mollitia voluptas commodi quo doloremque\\niste corrupti reiciendis voluptatem eius rerum\\nsit cumque quod eligendi laborum minima\\nperferendis recusandae assumenda consectetur porro architecto ipsum ipsam"
},
{
"userId": 2,
"id": 14,
"title": "voluptatem eligendi optio",
"body": "fuga et accusamus dolorum perferendis illo voluptas\\nnon doloremque neque facere\\nad qui dolorum molestiae beatae\\nsed aut voluptas totam sit illum"
},
{
"userId": 2,
"id": 15,
"title": "eveniet quod temporibus",
"body": "reprehenderit quos placeat\\nvelit minima officia dolores impedit repudiandae molestiae nam\\nvoluptas recusandae quis delectus\\nofficiis harum fugiat vitae"
},
{
"userId": 2,
"id": 16,
"title": "sint suscipit perspiciatis velit dolorum rerum ipsa laboriosam odio",
"body": "suscipit nam nisi quo aperiam aut\\nasperiores eos fugit maiores voluptatibus quia\\nvoluptatem quis ullam qui in alias quia est\\nconsequatur magni mollitia accusamus ea nisi voluptate dicta"
},
{
"userId": 2,
"id": 17,
"title": "fugit voluptas sed molestias voluptatem provident",
"body": "eos voluptas et aut odit natus earum\\naspernatur fuga molestiae ullam\\ndeserunt ratione qui eos\\nqui nihil ratione nemo velit ut aut id quo"
},
{
"userId": 2,
"id": 18,
"title": "voluptate et itaque vero tempora molestiae",
"body": "eveniet quo quis\\nlaborum totam consequatur non dolor\\nut et est repudiandae\\nest voluptatem vel debitis et magnam"
},
{
"userId": 2,
"id": 19,
"title": "adipisci placeat illum aut reiciendis qui",
"body": "illum quis cupiditate provident sit magnam\\nea sed aut omnis\\nveniam maiores ullam consequatur atque\\nadipisci quo iste expedita sit quos voluptas"
},
{
"userId": 2,
"id": 20,
"title": "doloribus ad provident suscipit at",
"body": "qui consequuntur ducimus possimus quisquam amet similique\\nsuscipit porro ipsam amet\\neos veritatis officiis exercitationem vel fugit aut necessitatibus totam\\nomnis rerum consequatur expedita quidem cumque explicabo"
},
{
"userId": 3,
"id": 21,
"title": "asperiores ea ipsam voluptatibus modi minima quia sint",
"body": "repellat aliquid praesentium dolorem quo\\nsed totam minus non itaque\\nnihil labore molestiae sunt dolor eveniet hic recusandae veniam\\ntempora et tenetur expedita sunt"
},
{
"userId": 3,
"id": 22,
"title": "dolor sint quo a velit explicabo quia nam",
"body": "eos qui et ipsum ipsam suscipit aut\\nsed omnis non odio\\nexpedita earum mollitia molestiae aut atque rem suscipit\\nnam impedit esse"
},
{
"userId": 3,
"id": 23,
"title": "maxime id vitae nihil numquam",
"body": "veritatis unde neque eligendi\\nquae quod architecto quo neque vitae\\nest illo sit tempora doloremque fugit quod\\net et vel beatae sequi ullam sed tenetur perspiciatis"
},
{
"userId": 3,
"id": 24,
"title": "autem hic labore sunt dolores incidunt",
"body": "enim et ex nulla\\nomnis voluptas quia qui\\nvoluptatem consequatur numquam aliquam sunt\\ntotam recusandae id dignissimos aut sed asperiores deserunt"
},
{
"userId": 3,
"id": 25,
"title": "rem alias distinctio quo quis",
"body": "ullam consequatur ut\\nomnis quis sit vel consequuntur\\nipsa eligendi ipsum molestiae et omnis error nostrum\\nmolestiae illo tempore quia et distinctio"
},
{
"userId": 3,
"id": 26,
"title": "est et quae odit qui non",
"body": "similique esse doloribus nihil accusamus\\nomnis dolorem fuga consequuntur reprehenderit fugit recusandae temporibus\\nperspiciatis cum ut laudantium\\nomnis aut molestiae vel vero"
},
{
"userId": 3,
"id": 27,
"title": "quasi id et eos tenetur aut quo autem",
"body": "eum sed dolores ipsam sint possimus debitis occaecati\\ndebitis qui qui et\\nut placeat enim earum aut odit facilis\\nconsequatur suscipit necessitatibus rerum sed inventore temporibus consequatur"
},
{
"userId": 3,
"id": 28,
"title": "delectus ullam et corporis nulla voluptas sequi",
"body": "non et quaerat ex quae ad maiores\\nmaiores recusandae totam aut blanditiis mollitia quas illo\\nut voluptatibus voluptatem\\nsimilique nostrum eum"
},
{
"userId": 3,
"id": 29,
"title": "iusto eius quod necessitatibus culpa ea",
"body": "odit magnam ut saepe sed non qui\\ntempora atque nihil\\naccusamus illum doloribus illo dolor\\neligendi repudiandae odit magni similique sed cum maiores"
},
{
"userId": 3,
"id": 30,
"title": "a quo magni similique perferendis",
"body": "alias dolor cumque\\nimpedit blanditiis non eveniet odio maxime\\nblanditiis amet eius quis tempora quia autem rem\\na provident perspiciatis quia"
},
{
"userId": 4,
"id": 31,
"title": "ullam ut quidem id aut vel consequuntur",
"body": "debitis eius sed quibusdam non quis consectetur vitae\\nimpedit ut qui consequatur sed aut in\\nquidem sit nostrum et maiores adipisci atque\\nquaerat voluptatem adipisci repudiandae"
},
{
"userId": 4,
"id": 32,
"title": "doloremque illum aliquid sunt",
"body": "deserunt eos nobis asperiores et hic\\nest debitis repellat molestiae optio\\nnihil ratione ut eos beatae quibusdam distinctio maiores\\nearum voluptates et aut adipisci ea maiores voluptas maxime"
},
{
"userId": 4,
"id": 33,
"title": "qui explicabo molestiae dolorem",
"body": "rerum ut et numquam laborum odit est sit\\nid qui sint in\\nquasi tenetur tempore aperiam et quaerat qui in\\nrerum officiis sequi cumque quod"
},
{
"userId": 4,
"id": 34,
"title": "magnam ut rerum iure",
"body": "ea velit perferendis earum ut voluptatem voluptate itaque iusto\\ntotam pariatur in\\nnemo voluptatem voluptatem autem magni tempora minima in\\nest distinctio qui assumenda accusamus dignissimos officia nesciunt nobis"
},
{
"userId": 4,
"id": 35,
"title": "id nihil consequatur molestias animi provident",
"body": "nisi error delectus possimus ut eligendi vitae\\nplaceat eos harum cupiditate facilis reprehenderit voluptatem beatae\\nmodi ducimus quo illum voluptas eligendi\\net nobis quia fugit"
},
{
"userId": 4,
"id": 36,
"title": "fuga nam accusamus voluptas reiciendis itaque",
"body": "ad mollitia et omnis minus architecto odit\\nvoluptas doloremque maxime aut non ipsa qui alias veniam\\nblanditiis culpa aut quia nihil cumque facere et occaecati\\nqui aspernatur quia eaque ut aperiam inventore"
},
{
"userId": 4,
"id": 37,
"title": "provident vel ut sit ratione est",
"body": "debitis et eaque non officia sed nesciunt pariatur vel\\nvoluptatem iste vero et ea\\nnumquam aut expedita ipsum nulla in\\nvoluptates omnis consequatur aut enim officiis in quam qui"
},
{
"userId": 4,
"id": 38,
"title": "explicabo et eos deleniti nostrum ab id repellendus",
"body": "animi esse sit aut sit nesciunt assumenda eum voluptas\\nquia voluptatibus provident quia necessitatibus ea\\nrerum repudiandae quia voluptatem delectus fugit aut id quia\\nratione optio eos iusto veniam iure"
},
{
"userId": 4,
"id": 39,
"title": "eos dolorem iste accusantium est eaque quam",
"body": "corporis rerum ducimus vel eum accusantium\\nmaxime aspernatur a porro possimus iste omnis\\nest in deleniti asperiores fuga aut\\nvoluptas sapiente vel dolore minus voluptatem incidunt ex"
},
{
"userId": 4,
"id": 40,
"title": "enim quo cumque",
"body": "ut voluptatum aliquid illo tenetur nemo sequi quo facilis\\nipsum rem optio mollitia quas\\nvoluptatem eum voluptas qui\\nunde omnis voluptatem iure quasi maxime voluptas nam"
},
{
"userId": 5,
"id": 41,
"title": "non est facere",
"body": "molestias id nostrum\\nexcepturi molestiae dolore omnis repellendus quaerat saepe\\nconsectetur iste quaerat tenetur asperiores accusamus ex ut\\nnam quidem est ducimus sunt debitis saepe"
},
{
"userId": 5,
"id": 42,
"title": "commodi ullam sint et excepturi error explicabo praesentium voluptas",
"body": "odio fugit voluptatum ducimus earum autem est incidunt voluptatem\\nodit reiciendis aliquam sunt sequi nulla dolorem\\nnon facere repellendus voluptates quia\\nratione harum vitae ut"
},
{
"userId": 5,
"id": 43,
"title": "eligendi iste nostrum consequuntur adipisci praesentium sit beatae perferendis",
"body": "similique fugit est\\nillum et dolorum harum et voluptate eaque quidem\\nexercitationem quos nam commodi possimus cum odio nihil nulla\\ndolorum exercitationem magnam ex et a et distinctio debitis"
},
{
"userId": 5,
"id": 44,
"title": "optio dolor molestias sit",
"body": "temporibus est consectetur dolore\\net libero debitis vel velit laboriosam quia\\nipsum quibusdam qui itaque fuga rem aut\\nea et iure quam sed maxime ut distinctio quae"
},
{
"userId": 5,
"id": 45,
"title": "ut numquam possimus omnis eius suscipit laudantium iure",
"body": "est natus reiciendis nihil possimus aut provident\\nex et dolor\\nrepellat pariatur est\\nnobis rerum repellendus dolorem autem"
},
{
"userId": 5,
"id": 46,
"title": "aut quo modi neque nostrum ducimus",
"body": "voluptatem quisquam iste\\nvoluptatibus natus officiis facilis dolorem\\nquis quas ipsam\\nvel et voluptatum in aliquid"
},
{
"userId": 5,
"id": 47,
"title": "quibusdam cumque rem aut deserunt",
"body": "voluptatem assumenda ut qui ut cupiditate aut impedit veniam\\noccaecati nemo illum voluptatem laudantium\\nmolestiae beatae rerum ea iure soluta nostrum\\neligendi et voluptate"
},
{
"userId": 5,
"id": 48,
"title": "ut voluptatem illum ea doloribus itaque eos",
"body": "voluptates quo voluptatem facilis iure occaecati\\nvel assumenda rerum officia et\\nillum perspiciatis ab deleniti\\nlaudantium repellat ad ut et autem reprehenderit"
},
{
"userId": 5,
"id": 49,
"title": "laborum non sunt aut ut assumenda perspiciatis voluptas",
"body": "inventore ab sint\\nnatus fugit id nulla sequi architecto nihil quaerat\\neos tenetur in in eum veritatis non\\nquibusdam officiis aspernatur cumque aut commodi aut"
},
{
"userId": 5,
"id": 50,
"title": "repellendus qui recusandae incidunt voluptates tenetur qui omnis exercitationem",
"body": "error suscipit maxime adipisci consequuntur recusandae\\nvoluptas eligendi et est et voluptates\\nquia distinctio ab amet quaerat molestiae et vitae\\nadipisci impedit sequi nesciunt quis consectetur"
},
{
"userId": 6,
"id": 51,
"title": "soluta aliquam aperiam consequatur illo quis voluptas",
"body": "sunt dolores aut doloribus\\ndolore doloribus voluptates tempora et\\ndoloremque et quo\\ncum asperiores sit consectetur dolorem"
},
{
"userId": 6,
"id": 52,
"title": "qui enim et consequuntur quia animi quis voluptate quibusdam",
"body": "iusto est quibusdam fuga quas quaerat molestias\\na enim ut sit accusamus enim\\ntemporibus iusto accusantium provident architecto\\nsoluta esse reprehenderit qui laborum"
},
{
"userId": 6,
"id": 53,
"title": "ut quo aut ducimus alias",
"body": "minima harum praesentium eum rerum illo dolore\\nquasi exercitationem rerum nam\\nporro quis neque quo\\nconsequatur minus dolor quidem veritatis sunt non explicabo similique"
},
{
"userId": 6,
"id": 54,
"title": "sit asperiores ipsam eveniet odio non quia",
"body": "totam corporis dignissimos\\nvitae dolorem ut occaecati accusamus\\nex velit deserunt\\net exercitationem vero incidunt corrupti mollitia"
},
{
"userId": 6,
"id": 55,
"title": "sit vel voluptatem et non libero",
"body": "debitis excepturi ea perferendis harum libero optio\\neos accusamus cum fuga ut sapiente repudiandae\\net ut incidunt omnis molestiae\\nnihil ut eum odit"
},
{
"userId": 6,
"id": 56,
"title": "qui et at rerum necessitatibus",
"body": "aut est omnis dolores\\nneque rerum quod ea rerum velit pariatur beatae excepturi\\net provident voluptas corrupti\\ncorporis harum reprehenderit dolores eligendi"
},
{
"userId": 6,
"id": 57,
"title": "sed ab est est",
"body": "at pariatur consequuntur earum quidem\\nquo est laudantium soluta voluptatem\\nqui ullam et est\\net cum voluptas voluptatum repellat est"
},
{
"userId": 6,
"id": 58,
"title": "voluptatum itaque dolores nisi et quasi",
"body": "veniam voluptatum quae adipisci id\\net id quia eos ad et dolorem\\naliquam quo nisi sunt eos impedit error\\nad similique veniam"
},
{
"userId": 6,
"id": 59,
"title": "qui commodi dolor at maiores et quis id accusantium",
"body": "perspiciatis et quam ea autem temporibus non voluptatibus qui\\nbeatae a earum officia nesciunt dolores suscipit voluptas et\\nanimi doloribus cum rerum quas et magni\\net hic ut ut commodi expedita sunt"
},
{
"userId": 6,
"id": 60,
"title": "consequatur placeat omnis quisquam quia reprehenderit fugit veritatis facere",
"body": "asperiores sunt ab assumenda cumque modi velit\\nqui esse omnis\\nvoluptate et fuga perferendis voluptas\\nillo ratione amet aut et omnis"
},
{
"userId": 7,
"id": 61,
"title": "voluptatem doloribus consectetur est ut ducimus",
"body": "ab nemo optio odio\\ndelectus tenetur corporis similique nobis repellendus rerum omnis facilis\\nvero blanditiis debitis in nesciunt doloribus dicta dolores\\nmagnam minus velit"
},
{
"userId": 7,
"id": 62,
"title": "beatae enim quia vel",
"body": "enim aspernatur illo distinctio quae praesentium\\nbeatae alias amet delectus qui voluptate distinctio\\nodit sint accusantium autem omnis\\nquo molestiae omnis ea eveniet optio"
},
{
"userId": 7,
"id": 63,
"title": "voluptas blanditiis repellendus animi ducimus error sapiente et suscipit",
"body": "enim adipisci aspernatur nemo\\nnumquam omnis facere dolorem dolor ex quis temporibus incidunt\\nab delectus culpa quo reprehenderit blanditiis asperiores\\naccusantium ut quam in voluptatibus voluptas ipsam dicta"
},
{
"userId": 7,
"id": 64,
"title": "et fugit quas eum in in aperiam quod",
"body": "id velit blanditiis\\neum ea voluptatem\\nmolestiae sint occaecati est eos perspiciatis\\nincidunt a error provident eaque aut aut qui"
},
{
"userId": 7,
"id": 65,
"title": "consequatur id enim sunt et et",
"body": "voluptatibus ex esse\\nsint explicabo est aliquid cumque adipisci fuga repellat labore\\nmolestiae corrupti ex saepe at asperiores et perferendis\\nnatus id esse incidunt pariatur"
},
{
"userId": 7,
"id": 66,
"title": "repudiandae ea animi iusto",
"body": "officia veritatis tenetur vero qui itaque\\nsint non ratione\\nsed et ut asperiores iusto eos molestiae nostrum\\nveritatis quibusdam et nemo iusto saepe"
},
{
"userId": 7,
"id": 67,
"title": "aliquid eos sed fuga est maxime repellendus",
"body": "reprehenderit id nostrum\\nvoluptas doloremque pariatur sint et accusantium quia quod aspernatur\\net fugiat amet\\nnon sapiente et consequatur necessitatibus molestiae"
},
{
"userId": 7,
"id": 68,
"title": "odio quis facere architecto reiciendis optio",
"body": "magnam molestiae perferendis quisquam\\nqui cum reiciendis\\nquaerat animi amet hic inventore\\nea quia deleniti quidem saepe porro velit"
},
{
"userId": 7,
"id": 69,
"title": "fugiat quod pariatur odit minima",
"body": "officiis error culpa consequatur modi asperiores et\\ndolorum assumenda voluptas et vel qui aut vel rerum\\nvoluptatum quisquam perspiciatis quia rerum consequatur totam quas\\nsequi commodi repudiandae asperiores et saepe a"
},
{
"userId": 7,
"id": 70,
"title": "voluptatem laborum magni",
"body": "sunt repellendus quae\\nest asperiores aut deleniti esse accusamus repellendus quia aut\\nquia dolorem unde\\neum tempora esse dolore"
},
{
"userId": 8,
"id": 71,
"title": "et iusto veniam et illum aut fuga",
"body": "occaecati a doloribus\\niste saepe consectetur placeat eum voluptate dolorem et\\nqui quo quia voluptas\\nrerum ut id enim velit est perferendis"
},
{
"userId": 8,
"id": 72,
"title": "sint hic doloribus consequatur eos non id",
"body": "quam occaecati qui deleniti consectetur\\nconsequatur aut facere quas exercitationem aliquam hic voluptas\\nneque id sunt ut aut accusamus\\nsunt consectetur expedita inventore velit"
},
{
"userId": 8,
"id": 73,
"title": "consequuntur deleniti eos quia temporibus ab aliquid at",
"body": "voluptatem cumque tenetur consequatur expedita ipsum nemo quia explicabo\\naut eum minima consequatur\\ntempore cumque quae est et\\net in consequuntur voluptatem voluptates aut"
},
{
"userId": 8,
"id": 74,
"title": "enim unde ratione doloribus quas enim ut sit sapiente",
"body": "odit qui et et necessitatibus sint veniam\\nmollitia amet doloremque molestiae commodi similique magnam et quam\\nblanditiis est itaque\\nquo et tenetur ratione occaecati molestiae tempora"
},
{
"userId": 8,
"id": 75,
"title": "dignissimos eum dolor ut enim et delectus in",
"body": "commodi non non omnis et voluptas sit\\nautem aut nobis magnam et sapiente voluptatem\\net laborum repellat qui delectus facilis temporibus\\nrerum amet et nemo voluptate expedita adipisci error dolorem"
},
{
"userId": 8,
"id": 76,
"title": "doloremque officiis ad et non perferendis",
"body": "ut animi facere\\ntotam iusto tempore\\nmolestiae eum aut et dolorem aperiam\\nquaerat recusandae totam odio"
},
{
"userId": 8,
"id": 77,
"title": "necessitatibus quasi exercitationem odio",
"body": "modi ut in nulla repudiandae dolorum nostrum eos\\naut consequatur omnis\\nut incidunt est omnis iste et quam\\nvoluptates sapiente aliquam asperiores nobis amet corrupti repudiandae provident"
},
{
"userId": 8,
"id": 78,
"title": "quam voluptatibus rerum veritatis",
"body": "nobis facilis odit tempore cupiditate quia\\nassumenda doloribus rerum qui ea\\nillum et qui totam\\naut veniam repellendus"
},
{
"userId": 8,
"id": 79,
"title": "pariatur consequatur quia magnam autem omnis non amet",
"body": "libero accusantium et et facere incidunt sit dolorem\\nnon excepturi qui quia sed laudantium\\nquisquam molestiae ducimus est\\nofficiis esse molestiae iste et quos"
},
{
"userId": 8,
"id": 80,
"title": "labore in ex et explicabo corporis aut quas",
"body": "ex quod dolorem ea eum iure qui provident amet\\nquia qui facere excepturi et repudiandae\\nasperiores molestias provident\\nminus incidunt vero fugit rerum sint sunt excepturi provident"
},
{
"userId": 9,
"id": 81,
"title": "tempora rem veritatis voluptas quo dolores vero",
"body": "facere qui nesciunt est voluptatum voluptatem nisi\\nsequi eligendi necessitatibus ea at rerum itaque\\nharum non ratione velit laboriosam quis consequuntur\\nex officiis minima doloremque voluptas ut aut"
},
{
"userId": 9,
"id": 82,
"title": "laudantium voluptate suscipit sunt enim enim",
"body": "ut libero sit aut totam inventore sunt\\nporro sint qui sunt molestiae\\nconsequatur cupiditate qui iste ducimus adipisci\\ndolor enim assumenda soluta laboriosam amet iste delectus hic"
},
{
"userId": 9,
"id": 83,
"title": "odit et voluptates doloribus alias odio et",
"body": "est molestiae facilis quis tempora numquam nihil qui\\nvoluptate sapiente consequatur est qui\\nnecessitatibus autem aut ipsa aperiam modi dolore numquam\\nreprehenderit eius rem quibusdam"
},
{
"userId": 9,
"id": 84,
"title": "optio ipsam molestias necessitatibus occaecati facilis veritatis dolores aut",
"body": "sint molestiae magni a et quos\\neaque et quasi\\nut rerum debitis similique veniam\\nrecusandae dignissimos dolor incidunt consequatur odio"
},
{
"userId": 9,
"id": 85,
"title": "dolore veritatis porro provident adipisci blanditiis et sunt",
"body": "similique sed nisi voluptas iusto omnis\\nmollitia et quo\\nassumenda suscipit officia magnam sint sed tempora\\nenim provident pariatur praesentium atque animi amet ratione"
},
{
"userId": 9,
"id": 86,
"title": "placeat quia et porro iste",
"body": "quasi excepturi consequatur iste autem temporibus sed molestiae beatae\\net quaerat et esse ut\\nvoluptatem occaecati et vel explicabo autem\\nasperiores pariatur deserunt optio"
},
{
"userId": 9,
"id": 87,
"title": "nostrum quis quasi placeat",
"body": "eos et molestiae\\nnesciunt ut a\\ndolores perspiciatis repellendus repellat aliquid\\nmagnam sint rem ipsum est"
},
{
"userId": 9,
"id": 88,
"title": "sapiente omnis fugit eos",
"body": "consequatur omnis est praesentium\\nducimus non iste\\nneque hic deserunt\\nvoluptatibus veniam cum et rerum sed"
},
{
"userId": 9,
"id": 89,
"title": "sint soluta et vel magnam aut ut sed qui",
"body": "repellat aut aperiam totam temporibus autem et\\narchitecto magnam ut\\nconsequatur qui cupiditate rerum quia soluta dignissimos nihil iure\\ntempore quas est"
},
{
"userId": 9,
"id": 90,
"title": "ad iusto omnis odit dolor voluptatibus",
"body": "minus omnis soluta quia\\nqui sed adipisci voluptates illum ipsam voluptatem\\neligendi officia ut in\\neos soluta similique molestias praesentium blanditiis"
},
{
"userId": 10,
"id": 91,
"title": "aut amet sed",
"body": "libero voluptate eveniet aperiam sed\\nsunt placeat suscipit molestias\\nsimilique fugit nam natus\\nexpedita consequatur consequatur dolores quia eos et placeat"
},
{
"userId": 10,
"id": 92,
"title": "ratione ex tenetur perferendis",
"body": "aut et excepturi dicta laudantium sint rerum nihil\\nlaudantium et at\\na neque minima officia et similique libero et\\ncommodi voluptate qui"
},
{
"userId": 10,
"id": 93,
"title": "beatae soluta recusandae",
"body": "dolorem quibusdam ducimus consequuntur dicta aut quo laboriosam\\nvoluptatem quis enim recusandae ut sed sunt\\nnostrum est odit totam\\nsit error sed sunt eveniet provident qui nulla"
},
{
"userId": 10,
"id": 94,
"title": "qui qui voluptates illo iste minima",
"body": "aspernatur expedita soluta quo ab ut similique\\nexpedita dolores amet\\nsed temporibus distinctio magnam saepe deleniti\\nomnis facilis nam ipsum natus sint similique omnis"
},
{
"userId": 10,
"id": 95,
"title": "id minus libero illum nam ad officiis",
"body": "earum voluptatem facere provident blanditiis velit laboriosam\\npariatur accusamus odio saepe\\ncumque dolor qui a dicta ab doloribus consequatur omnis\\ncorporis cupiditate eaque assumenda ad nesciunt"
},
{
"userId": 10,
"id": 96,
"title": "quaerat velit veniam amet cupiditate aut numquam ut sequi",
"body": "in non odio excepturi sint eum\\nlabore voluptates vitae quia qui et\\ninventore itaque rerum\\nveniam non exercitationem delectus aut"
},
{
"userId": 10,
"id": 97,
"title": "quas fugiat ut perspiciatis vero provident",
"body": "eum non blanditiis soluta porro quibusdam voluptas\\nvel voluptatem qui placeat dolores qui velit aut\\nvel inventore aut cumque culpa explicabo aliquid at\\nperspiciatis est et voluptatem dignissimos dolor itaque sit nam"
},
{
"userId": 10,
"id": 98,
"title": "laboriosam dolor voluptates",
"body": "doloremque ex facilis sit sint culpa\\nsoluta assumenda eligendi non ut eius\\nsequi ducimus vel quasi\\nveritatis est dolores"
},
{
"userId": 10,
"id": 99,
"title": "temporibus sit alias delectus eligendi possimus magni",
"body": "quo deleniti praesentium dicta non quod\\naut est molestias\\nmolestias et officia quis nihil\\nitaque dolorem quia"
},
{
"userId": 10,
"id": 100,
"title": "at nam consequatur ea labore ea harum",
"body": "cupiditate quo est a modi nesciunt soluta\\nipsa voluptas error itaque dicta in\\nautem qui minus magnam et distinctio eum\\naccusamus ratione error aut"
}
]

 评论内容请求:

GET http://jsonplaceholder.typicode.com/comments?postId=1 HTTP/1.1
Accept: application/json
User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; msm8909 Build/09_V2.7.1)
Host: jsonplaceholder.typicode.com
Connection: Keep-Alive
Accept-Encoding: gzip

 返回:

HTTP/1.1 200 OK
Date: Sat, 05 Aug 2017 16:10:39 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Set-Cookie: __cfduid=d7cbfa7c377dd3c925556e2b13269dfc81501949438; expires=Sun, 05-Aug-18 16:10:38 GMT; path=/; domain=.typicode.com; HttpOnly
X-Powered-By: Express
Vary: Accept-Encoding
Access-Control-Allow-Credentials: true
Cache-Control: public, max-age=14400
Pragma: no-cache
Expires: Sat, 05 Aug 2017 20:10:39 GMT
X-Content-Type-Options: nosniff
Etag: W/"5e6-4bSPS5tq8F8ZDeFJULWh6upjp7U"
Via: 1.1 vegur
CF-Cache-Status: REVALIDATED
Server: cloudflare-nginx
CF-RAY: 389b0718013b328f-HKG
Content-Length: 1510

[
{
"postId": 1,
"id": 1,
"name": "id labore ex et quam laborum",
"email": "Eliseo@gardner.biz",
"body": "laudantium enim quasi est quidem magnam voluptate ipsam eos\\ntempora quo necessitatibus\\ndolor quam autem quasi\\nreiciendis et nam sapiente accusantium"
},
{
"postId": 1,
"id": 2,
"name": "quo vero reiciendis velit similique earum",
"email": "Jayne_Kuhic@sydney.com",
"body": "est natus enim nihil est dolore omnis voluptatem numquam\\net omnis occaecati quod ullam at\\nvoluptatem error expedita pariatur\\nnihil sint nostrum voluptatem reiciendis et"
},
{
"postId": 1,
"id": 3,
"name": "odio adipisci rerum aut animi",
"email": "Nikita@garfield.biz",
"body": "quia molestiae reprehenderit quasi aspernatur\\naut expedita occaecati aliquam eveniet laudantium\\nomnis quibusdam delectus saepe quia accusamus maiores nam est\\ncum et ducimus et vero voluptates excepturi deleniti ratione"
},
{
"postId": 1,
"id": 4,
"name": "alias odio sit",
"email": "Lew@alysha.tv",
"body": "non et atque\\noccaecati deserunt quas accusantium unde odit nobis qui voluptatem\\nquia voluptas consequuntur itaque dolor\\net qui rerum deleniti ut occaecati"
},
{
"postId": 1,
"id": 5,
"name": "vero eaque aliquid doloribus et culpa",
"email": "Hayden@althea.biz",
"body": "harum non quasi et ratione\\ntempore iure ex voluptates in ratione\\nharum architecto fugit inventore cupiditate\\nvoluptates magni quo et"
}
]

 

 列表点击:

GET http://jsonplaceholder.typicode.com/posts/1 HTTP/1.1
Accept: application/json
User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; msm8909 Build/09_V2.7.1)
Host: jsonplaceholder.typicode.com
Connection: Keep-Alive
Accept-Encoding: gzip

 

HTTP/1.1 200 OK
Date: Sat, 05 Aug 2017 16:10:38 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Set-Cookie: __cfduid=d00d64ccfdc47601195f9b13656b3a7991501949438; expires=Sun, 05-Aug-18 16:10:38 GMT; path=/; domain=.typicode.com; HttpOnly
X-Powered-By: Express
Vary: Accept-Encoding
Access-Control-Allow-Credentials: true
Cache-Control: public, max-age=14400
Pragma: no-cache
Expires: Sat, 05 Aug 2017 20:10:38 GMT
X-Content-Type-Options: nosniff
Etag: W/"124-yiKdLzqO5gfBrJFrcdJ8Yq0LGnU"
Via: 1.1 vegur
CF-Cache-Status: HIT
Server: cloudflare-nginx
CF-RAY: 389b071807298520-HKG
Content-Length: 292

{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto"
}

 

请求返回的数据为json字段格式:

请求的数据中,都没有body数据,都是只有地址信息内容

 

测试数据发送:

GET https://api.github.com/users/ahmedrizwan HTTP/1.1
Host: api.github.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; msm8909 Build/09_V2.7.1) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,en-US;q=0.8
X-Requested-With: acr.browser.barebones

测试数据返回:

HTTP/1.1 200 OK
Date: Sun, 06 Aug 2017 14:47:47 GMT
Content-Type: application/json; charset=utf-8
Server: GitHub.com
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1502034467
Cache-Control: public, max-age=60, s-maxage=60
Vary: Accept
ETag: W/"0d9560fedd4bc52c4a7db794c04a1def"
Last-Modified: Thu, 03 Aug 2017 10:53:05 GMT
X-GitHub-Media-Type: unknown, github.v3
Access-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval
Access-Control-Allow-Origin: *
Content-Security-Policy: default-src \'none\'
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-XSS-Protection: 1; mode=block
X-Runtime-rack: 0.023320
Vary: Accept-Encoding
X-GitHub-Request-Id: A01C:1BA5E:167AD86:1EC0A4D:59872C13
Content-Length: 1312

{
"login": "ahmedrizwan",
"id": 4357275,
"avatar_url": "https://avatars1.githubusercontent.com/u/4357275?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ahmedrizwan",
"html_url": "https://github.com/ahmedrizwan",
"followers_url": "https://api.github.com/users/ahmedrizwan/followers",
"following_url": "https://api.github.com/users/ahmedrizwan/following{/other_user}",
"gists_url": "https://api.github.com/users/ahmedrizwan/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ahmedrizwan/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ahmedrizwan/subscriptions",
"organizations_url": "https://api.github.com/users/ahmedrizwan/orgs",
"repos_url": "https://api.github.com/users/ahmedrizwan/repos",
"events_url": "https://api.github.com/users/ahmedrizwan/events{/privacy}",
"received_events_url": "https://api.github.com/users/ahmedrizwan/received_events",
"type": "User",
"site_admin": false,
"name": "ahmed",
"company": "Convo",
"blog": "https://medium.com/@ahmedrizwan",
"location": null,
"email": null,
"hireable": true,
"bio": "Android Engineer",
"public_repos": 20,
"public_gists": 0,
"followers": 59,
"following": 30,
"created_at": "2013-05-06T18:32:59Z",
"updated_at": "2017-08-03T10:53:05Z"
}

配置好解析器后,会自动解析json里的数据内容,根据配置的标签进行解析

public class Post {
/*
public int userId;
public int id;
public String title;
public String body;


*/
public String login;
public int id;
public String avatar_url;
public String updated_at;
public String title;
public String body;
}
根据设置的内容,自动解析并填充数据字段的信息。

retrofit同步请求,同步请求比较简单,可以直接用Call 的 execute的方法即可,这个时候我们会拿到请求
结果。
public void synchronousRequest() throws Exception {
Retrofit retrofit = RetrofitMagager.getRetrofit();
GitHubService service = retrofit.crate(GitHubService.class);
Call<User> example = service.userInfo("ttdevs");
Response<User> response = example.execute();
}


异步加载的方式为:

@Test
public void requestHeader() throws Exception {
OkHttpClient client = RetrofitManager.getClient(new Interceptor() {
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
Request original = chain.request();
Request request = original.newBuilder()
.header("Time-Zone", "Asia/Shanghai") //https://developer.github.com/v3/#timezones
.header("user_key", "I_am_user_key")
.method(original.method(), original.body())
.build();
okhttp3.Response response = chain.proceed(request);
return response;
}
});
Retrofit retrofit = RetrofitManager.getRetrofit(client);
ExampleService service = retrofit.create(ExampleService.class);

String url = "http://www.weather.com.cn/adat/sk/101020100.html";
Call<ResponseBody> example = service.requestWithHeader(url);

final CountDownLatch countDownLatch = new CountDownLatch(1);
example.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
try {
print(response.body().string());
} catch (IOException e) {
e.printStackTrace();
}

countDownLatch.countDown();
}

@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
countDownLatch.countDown();
}
});
countDownLatch.await();
}


















以上是关于retrofit 用法的主要内容,如果未能解决你的问题,请参考以下文章

retrofit 用法

网络请求--Retrofit2用法

Retrofit2与RxJava用法大全

当我使用 Retrofit 时,Google 位置服务返回一个空位置

c_cpp 加载源图像固定用法(代码片段,不全)

科特林 | Retrofit API 使用 access_token 获取调用