Comparação de bibliotecas de redes Android: OkHTTP, Retrofit e Volley [fechado]


579

Pergunta em duas partes de um desenvolvedor do iOS que está aprendendo o Android, trabalhando em um projeto do Android que fará uma variedade de solicitações do JSON à imagem e ao download contínuo de áudio e vídeo:

  1. No iOS, usei o projeto AFNetworking extensivamente. Existe uma biblioteca equivalente para Android?

  2. Eu li o OkHTTP e o Retrofit by Square, além do Volley, mas ainda não tenho experiência em desenvolver com eles. Espero que alguém possa fornecer alguns exemplos concretos dos melhores casos de uso para cada um. Pelo que li, parece que o OkHTTP é o mais robusto dos três e pode lidar com os requisitos deste projeto (mencionado acima).


3
Se você estiver usando a implementação interna do HttpUrlConnection, considere que o HttpUrlConnection usa tentativas silenciosas em solicitações POST. Isso me causou muito estrago. Para mais informações leia aqui: stackoverflow.com/a/37675253/2061089
oli

1
Se alguém precisa de lista de todas as bibliotecas de rede que você pode encontrá-lo em meu blog androidredman.wordpress.com/2017/06/26/...
Manohar Reddy

O vôlei pode executar o Apache legado, HttpUrlConnection, Apache-4 ou OkHttp. Onde o Retrofit realmente executa apenas o OkHttp. A atualização é muito mais fácil de configurar.
Bitsabhi

Respostas:


647

Espero que alguém possa fornecer alguns exemplos concretos dos melhores casos de uso para cada um.

Use Retrofit se estiver se comunicando com um serviço da Web. Use a biblioteca de pares Picasso se estiver baixando imagens. Use OkHTTP se você precisar executar operações HTTP fora do Retrofit / Picasso.

O Volley concorre aproximadamente com o Retrofit + Picasso. No lado positivo, é uma biblioteca. No lado negativo, é uma biblioteca não documentada, não suportada, "jogue o código por cima do muro e faça uma apresentação I | O nele".

EDIT - Volley agora é oficialmente suportado pelo Google. Consulte o Guia do desenvolvedor do Google

Pelo que li, parece que o OkHTTP é o mais robusto dos três

A atualização utiliza o OkHTTP automaticamente, se disponível. Há uma essência de Jake Wharton que conecta o Volley ao OkHTTP.

e pode lidar com os requisitos deste projeto (mencionados acima).

Provavelmente você não usará nenhum deles para "streaming de download de áudio e vídeo", pela definição convencional de "streaming". Em vez disso, a estrutura de mídia do Android tratará dessas solicitações HTTP para você.

Dito isto, se você tentar fazer seu próprio streaming baseado em HTTP, o OkHTTP deverá lidar com esse cenário; Não me lembro como Volley lidaria com esse cenário. Nem o Retrofit nem o Picasso são projetados para isso.


4
Agradeço à @CommonsWare pela resposta concisa e pela nota sobre a coleção não documentada de Volley (tive essa impressão, especialmente em comparação com os outros projetos). Definitivamente me ajuda a tirar as coisas do chão.
Alfie Hanssen

18
Outra ótima resposta do @CommonsWare. Alguém pode acompanhar como o RoboSpice se encaixa nisso tudo?
User1923613

3
@ user1923613 github.com/octo-online/robospice se você estiver usando vôlei para chamadas de rede, não precisará usar o robospice! Spring Android ou Google Http Client ou Retrofit) .se você deseja uma rede rápida e carregamento de imagens com um cliente de rede robusto, pode jogar vôlei! mas você pode substituir a tarefa assíncrona normal do Android, você usa o Robospice para obter melhor desempenho e evitar vazamentos de memória!
LOG_TAG

4
@rostymarvelous: Eu sinto que indocumentados e não suportados são justificativas mais do que suficientes. Não é como se o Google não tivesse um sistema para lidar formalmente com coisas como esta (por exemplo, Biblioteca de Suporte do Android). Nos dois anos desde essa resposta, do lado positivo, há uma certa quantidade de apoio da comunidade, incluindo alguns pacotes não oficiais do código em um artefato.
CommonsWare

4
@AbhinavVutukuri: Você está comentando uma resposta de mais de dois anos atrás. Naquela época, não havia documentação.
CommonsWare 08/09/16

361

Olhando para a perspectiva do Volley, aqui estão algumas vantagens para sua exigência:

O Volley, por um lado, está totalmente focado no tratamento de pequenas solicitações HTTP individuais. Portanto, se o tratamento de solicitações HTTP tiver algumas peculiaridades, o Volley provavelmente terá um gancho para você. Se, por outro lado, você tem uma peculiaridade na manipulação de imagens, o único gancho real que você tem é o ImageCache . "Não é nada, mas também não é muito!". mas tem mais outras vantagens, como Depois de definir suas solicitações, usá-las em um fragmento ou atividade é indolor, ao contrário do AsyncTasks paralelo

Prós e contras de Volley:

Então, o que há de bom no Volley?

  • A parte da rede não é apenas para imagens. O Volley pretende ser parte integrante do seu back-end. Para um novo projeto baseado em um serviço REST simples, isso pode ser uma grande vitória.

  • O NetworkImageView é mais agressivo quanto à limpeza de solicitações do que o Picasso e mais conservador em seus padrões de uso de GC. O NetworkImageView se baseia exclusivamente em referências de memória forte e limpa todos os dados da solicitação assim que uma nova solicitação é feita para um ImageView, ou assim que o ImageView sai da tela.

  • Atuação. Esta postagem não avaliará essa afirmação, mas eles claramente tomaram o cuidado de julgar seus padrões de uso de memória. O Volley também faz um esforço para fazer retornos de chamada em lote para o thread principal para reduzir a alternância de contexto.

  • O vôlei aparentemente também tem futuro. Confira RequestFuture se você estiver interessado.

  • Se você estiver lidando com imagens compactadas de alta resolução, o Volley é a única solução aqui que funciona bem.

  • O vôlei pode ser usado com o Okhttp (a nova versão do Okhttp suporta NIO para melhor desempenho)

  • O vôlei joga bem com o ciclo de vida da atividade.

Problemas com o Volley:
Como o Volley é novo, poucas coisas ainda não são suportadas, mas são corrigidas.

  1. Solicitações de várias partes (solução: https://github.com/vinaysshenoy/enhanced-volley )

  2. o código de status 201 é considerado um erro, o código de status de 200 a 207 é uma resposta bem-sucedida agora. (Corrigido: https://github.com/Vinayrraj/CustomVolley )

    Atualização: na última versão do Google Volley, o bug dos códigos de status 2XX foi corrigido agora! Graças a Ficus Kirkpatrick!

  3. é menos documentado, mas muitas pessoas suportam vôlei no github; documentação semelhante a java pode ser encontrada aqui . No site do desenvolvedor Android, você pode encontrar um guia para transmissão de dados de rede usando vôlei . E o código fonte do vôlei pode ser encontrado no Google Git

  4. Para resolver / alterar a política de redirecionamento do Volley Framework, use o Volley com OkHTTP (CommonsWare mencionado acima)

Também é possível ler este carregamento de imagem do Volley Comparing com Picasso

Retrofit:

É lançado pela Square , oferece uma API REST muito fácil de usar (atualização: Voila! Com suporte a NIO)

Profissionais do Retrofit:

  • Comparado ao Volley, o código da API REST da Retrofit é breve e fornece excelente documentação da API e tem bom suporte nas comunidades! É muito fácil adicionar os projetos.

  • Podemos usá-lo com qualquer biblioteca de serialização, com tratamento de erros.

Atualização: - Existem muitas mudanças muito boas no Retrofit 2.0.0-beta2

  • a versão 1.6 do Retrofit com OkHttp 2.0 agora depende do Okio para suportar java.io e java.nio, o que facilita o acesso, o armazenamento e o processamento de dados usando o ByteString e o Buffer para fazer algumas coisas inteligentes para economizar CPU e memória. (FYI: Isso me lembra a biblioteca OIN da Koush com suporte a NIO!) Podemos usar o Retrofit junto com o RxJava para combinar e encadear chamadas REST usando rxObservables para evitar cadeias feias de retorno de chamada (para evitar o inferno de retorno de chamada !!) .

Contras do Retrofit para a versão 1.6:

  • A funcionalidade de tratamento de erros relacionados à memória não é boa (nas versões anteriores do Retrofit / OkHttp), não tenho certeza se foi aprimorada com o suporte do Okio com Java NIO.

  • A assistência mínima de encadeamento pode resultar em retorno do inferno se usarmos isso de maneira inadequada.

(Todos os Contras acima foram resolvidos na nova versão do Retrofit 2.0 beta)

==================================================== ======================

Atualizar:

Benchmarks de desempenho do Android Async vs Volley vs Retrofit (milissegundos, menor valor é melhor):

Benchmarks de desempenho do Android Async vs Volley vs Retrofit

(A informação acima das informações de benchmarking para retrofit melhorará com o suporte a java NIO porque a nova versão do OKhttp depende da biblioteca NIO Okio)

Nos três testes com repetições variadas (1 a 25 vezes), o Volley foi de 50% a 75% mais rápido. O retrofit atingiu um tempo impressionante de 50% a 90% mais rápido que o AsyncTasks, atingindo o mesmo terminal no mesmo número de vezes. No conjunto de testes do Dashboard, isso se traduz em carregar / analisar os dados vários segundos mais rapidamente. Essa é uma enorme diferença no mundo real. Para tornar os testes justos, os tempos para AsyncTasks / Volley incluíram a análise JSON, pois o Retrofit faz isso automaticamente para você.

RetroFit vence no teste de benchmark!

No final, decidimos usar o Retrofit para nossa aplicação. Não só é ridiculamente rápido, mas também combina muito bem com a nossa arquitetura existente. Conseguimos criar uma Interface de retorno de chamada pai que executa automaticamente o tratamento de erros, o cache e a paginação com pouco ou nenhum esforço para nossas APIs. Para mesclar o Retrofit, tivemos que renomear nossas variáveis ​​para tornar nossos modelos compatíveis com GSON, escrever algumas interfaces simples, excluir funções da API antiga e modificar nossos fragmentos para não usar AsyncTasks. Agora que temos alguns fragmentos completamente convertidos, é bastante indolor. Houve algumas dores e problemas crescentes que tivemos que superar, mas no geral tudo correu bem. No começo, tivemos alguns problemas / bugs técnicos, mas a Square tem uma fantástica comunidade do Google+ que nos ajudou a resolvê-la.

Quando usar o Volley ?!

Podemos usar o Volley quando precisamos carregar imagens e consumir APIs REST !, o sistema de enfileiramento de chamadas de rede é necessário para muitas solicitações n / w ao mesmo tempo! O Volley também possui melhor manipulação de erros relacionados à memória que o Retrofit!

OkHttp pode ser usado com o Volley, Retrofit usa OkHttp por padrão! Possui suporte SPDY , pool de conexões, cache de disco, compactação transparente! Recentemente, ele recebeu algum suporte do Java NIO com a biblioteca Okio .

Fonte, crédito: volley-vs-retrofit do Sr. Josh Ruesch

Nota: Sobre o streaming, depende do tipo de streaming que você deseja, como RTSP / RTCP.


@ Jan1337z +1 para obter informações! Eu atualizei-o! android.googlesource.com/platform/frameworks/volley
LOG_TAG

4
@LOG_TAG, seria interessante comparar o RoboSpice em sua amostra. Nós até oferecemos um módulo Retrofit, então acredito que isso exigiria muito poucas alterações. A fonte está disponível em algum lugar? A vantagem do RS é que ele lida adequadamente com o ciclo de vida da atividade que realiza solicitações de rede e também fornecemos cache transparente, acho que a sobrecarga seria pequena em comparação com uma solicitação pura de modernização.
Snicolas

@Snicolas Eu obtive esses resultados de benchmark no blog de Josh Ruesch, você pode ver a conversão entre Ficus Kirkpatrick (fundador do Volley), Josh Ruesch! Ele ainda não compartilhou o projeto de teste de benchmark em nenhum lugar! FYI eu sou apenas começou a aprender seu RoboSpice com amostra retrofit enfrentando esta notificação questão :)
LOG_TAG

3
Oi! Sobre solicitações de várias partes com o Volley, acho que podemos usar MultipartEntityBuilderna httpmimebiblioteca com ele.
BNK 13/08/15

2
Alguém mais verificou esses benchmarks? Como a biblioteca http do apache está obsoleta no M (e eu a estava usando para o construtor de várias partes), decidi migrar meu código de rede para o Retrofit. Inicialmente, mudei uma das chamadas GET para obter um monte de objetos do servidor. Eu cronometrei o Retrofit vs AsyncTask (com minha própria análise JSON). O desempenho foi muito próximo, não uma melhoria de 3x, como mostrado na coluna "Uma discussão" da tabela. Concedido, o código resultante é muito mais limpo e eu não precisei escrever meu próprio analisador JSON, mas para uma única solicitação GET, a melhoria não estava lá.
Gary Kipnis

44

RoboSpice vs. Vôlei

Em https://groups.google.com/forum/#!topic/robospice/QwVCfY_glOQ

  • O RoboSpice (RS) é baseado em serviços e mais respeitoso da filosofia Android do que o Volley. O Volley é baseado em threads e não é assim que o processamento em segundo plano deve ocorrer no Android. Por fim, você pode desenterrar as duas bibliotecas e descobrir que elas são bastante semelhantes, mas nossa maneira de fazer o processamento em segundo plano é mais orientada ao Android, permitindo, por exemplo, dizer aos usuários que o RS está realmente fazendo algo em segundo plano, o que seria difícil para vôlei (na verdade, não existe).
  • O RoboSpice e o voleio oferecem recursos interessantes, como priorização, políticas de repetição e solicitação de cancelamento. Mas o RS oferece mais: um armazenamento em cache mais avançado, e grande, com gerenciamento de cache, agregação de solicitações, mais recursos, como replicar para uma solicitação pendente, lidar com a expiração do cache sem depender de cabeçalhos de servidor etc.
  • O RoboSpice faz mais fora do UI Thread: o volley desserializa seus POJOs no thread principal, o que é horrível para mim. Com o RS, seu aplicativo será mais responsivo.
  • Em termos de velocidade, definitivamente precisamos de métricas. O RS ficou super rápido agora, mas ainda não temos números para colocar aqui. O vôlei teoricamente deveria ser um pouco mais rápido, mas o RS agora é massivamente paralelo ... quem sabe?
  • O RoboSpice oferece uma ampla faixa de compatibilidade com extensões. Você pode usá-lo com okhttp, retrofit, ormlite (beta), jackson, jackson2, gson, serializador xml, cliente http do google, android da primavera ... Bastante. O Volley pode ser usado com o http ok e usa o gson. é isso aí.
  • O Volley oferece mais açúcar de interface do usuário que o RS. O Volley fornece NetworkImageView, o RS fornece um adaptador de lista de distribuição. Em termos de recursos, ainda não está longe, mas acredito que o Volley é mais avançado nesse tópico.
  • Mais de 200 erros foram resolvidos no RoboSpice desde seu lançamento inicial. É bastante robusto e muito utilizado na produção. O Volley é menos maduro, mas sua base de usuários deve estar crescendo rapidamente (efeito do Google).
  • O RoboSpice está disponível na central maven. É difícil encontrar vôlei;)

O Robospice usa serviços Android para chamadas REST, podemos usar o Robospice com Retrofit para minimizar os esforços de análise do gson, da mesma maneira que podemos usar o Volley (com base na banda de rodagem) com o Robospice? (não tenho certeza se é o qsn certo para perguntar) Eu só estou procurando vôlei com serviço!
LOG_TAG 23/04

1
Vôlei com serviço é basicamente RS. Ou, cronologicamente falando, o Volley é RS sem serviço e faltam poucos outros recursos. E sim, você pode usar o Retrofit com RS e também adicionar okhttp, se quiser.
Snicolas

7
Por que é difícil encontrar vôlei? compile 'com.mcxiaoke.volley:library:1.0.+'
Rob

1
@ Rob, houve um tempo em que o clone de mcxiaoke não estava disponível. Você tinha que incluir manualmente vôlei no seu aplicativo.
Frostymarvelous

"voleio irá desserializar seus POJOs no thread principal". Você pode receber os dados JSON retornados e desserializar você mesmo em um encadeamento separado, se este for um problema.
AndroidDev 9/09/15

20

AFNetworking para Android:

Rápido Networking Android é aqui

A Rápida Biblioteca de Rede Android suporta todos os tipos de solicitação HTTP / HTTPS, como GET, POST, DELETE, HEAD, PUT, PATCH

Fast Android Networking Library suporta o download de qualquer tipo de arquivo

A Rápida Biblioteca de Rede Android suporta o upload de qualquer tipo de arquivo (suporta o upload de várias partes)

A biblioteca de rede rápida do Android suporta o cancelamento de uma solicitação

A Rápida Biblioteca de Rede Android suporta a definição de prioridade para qualquer solicitação (BAIXA, MÉDIA, ALTA, IMEDIATA)

Biblioteca de rede rápida do Android suporta RxJava

Como ele usa o OkHttp como uma camada de rede, ele suporta:

A biblioteca de rede rápida do Android suporta o suporte HTTP / 2, permitindo que todas as solicitações ao mesmo host compartilhem um soquete

A Biblioteca de rede rápida do Android usa o pool de conexões que reduz a latência de solicitações (se HTTP / 2 não estiver disponível)

GZIP transparente reduz tamanhos de download

A Rápida Biblioteca de Rede Android suporta cache de resposta, o que evita a rede completamente para solicitações repetidas

Obrigado: A biblioteca é criada por mim


1
Você declara que sua biblioteca suporta HTTP / 2, mas não diz se existe um requisito de API para o suporte HTTP / 2. Meu entendimento era que o nível da API do Android menor que 5.0 não tinha os métodos de criptografia SSL corretos para oferecer suporte a HTTP / 2. Não bata, apenas tente avaliar completamente sua solução proposta.
DoctorD

@AmitShekhar: Eu só queria saber qual é o melhor para chamadas de API no Android. Estou usando a Android Networking Library, o que é ótimo para implementar Retrofit, Volley ou Android Networking?
Parth Bhayani

@Mitmit Shekhar Qual é a eficiência da Rede Android rápida para o upload de imagens com várias partes, especialmente quando se trata de cenários de pouca internet?
user3135923

18

Cliente assíncrono HTTP loopj vs. Volley

As especificidades do meu projeto são pequenas solicitações HTTP REST, a cada 1-5 minutos.

Eu uso um cliente HTTP assíncrono (1.4.1) por um longo tempo. O desempenho é melhor do que usar o httpClient do Apache baunilha ou uma conexão de URL HTTP. De qualquer forma, a nova versão da biblioteca não está funcionando para mim: a exceção entre bibliotecas diminui a cadeia de retornos de chamada.

A leitura de todas as respostas me motivou a tentar algo novo. Eu escolhi a biblioteca HTTP Volley.

Depois de usá-lo por algum tempo, mesmo sem testes, vejo claramente que o tempo de resposta caiu para 1,5x, 2x Volley.

Talvez o Retrofit seja melhor que um cliente HTTP assíncrono? Eu preciso tentar. Mas tenho certeza de que o Volley não é para mim.


Qualquer análise sobre Retrofit Vs AsyncHttpClient ??? Por favor, poste se sim @Sergey
IshRoid


Estou usando o AsyncHttpClient por alguns anos. A parte ruim é que o repositório do github é de 2 anos sem confirmação.
Vitor Hugo Schwaab 26/10

Não é mais real, http assíncrono é moda muito antiga. Considere mudar para outra biblioteca. Vôlei também se tornou uma escolha muito boa.
Sergey Vakulenko

Sergey, @IshRoid eu ainda estou procurando a resposta da sua pergunta eu estou usando AsyncHttpClient que eu deveria usar algo diferente como RxJava Retrofit ou qualquer coisa else..Please me avise .. ansiosamente à espera de resposta
Profundo Dave

11

Só para adicionar um pouco à discussão da minha experiência de trabalho com o Volley:

  1. O Volley não lida com uploads ou downloads de streaming em nenhum sentido. Ou seja, todo o corpo da solicitação precisa estar na memória e você não pode usar um OutputStreampara gravar o corpo do pedido no soquete subjacente, nem um InputStreampara ler o corpo da resposta, como HttpURLConnectionfaz o básico . Portanto, o Volley é uma má escolha para carregar ou baixar arquivos grandes. Seus pedidos e respostas devem ser pequenos. Essa é uma das maiores limitações do Volley que eu pessoalmente encontrei. Pelo que vale, o OkHttp possui interfaces para trabalhar com fluxos.

  2. A falta de documentação oficial é irritante, embora eu tenha conseguido contornar isso lendo o código-fonte, o que é bastante fácil de seguir. O que é mais incômodo é que, até onde eu sei, o Volley não tem versões oficiais de lançamento nem artefato Maven ou Gradle, e, portanto, gerenciá-lo como uma dependência se torna mais uma dor de cabeça do que, digamos, qualquer uma das bibliotecas que a Square lançou . Você apenas clona um repositório, constrói um frasco e fica sozinho. Procurando uma correção de bug? Buscar e espero que esteja lá. Você também pode obter outras coisas; não será documentado. Na minha opinião, isso significa efetivamente que o Volley é uma biblioteca de terceiros não suportada, mesmo que a base de código esteja razoavelmente ativa. Advertência emptor.

  3. Como um nit, ter o Tipo de conteúdo vinculado ao tipo de classe / solicitação (JsonObjectRequest, ImageRequest etc.) é meio estranho e reduz um pouco a flexibilidade do código de chamada, pois você está vinculado à hierarquia de tipos de solicitação existente do Volley. Eu gosto da simplicidade de apenas definir o Tipo de Conteúdo como um cabeçalho como qualquer outro (a propósito, não faça isso com o Volley; você acabará com dois cabeçalhos do Tipo de Conteúdo!). Essa é apenas a minha opinião pessoal e pode ser contornada.

Isso não quer dizer que o Volley não tenha alguns recursos úteis. Certamente que sim. Políticas de repetição facilmente personalizáveis, armazenamento em cache transparente, uma API de cancelamento e suporte para agendamento de solicitações e conexões simultâneas são ótimos recursos. Saiba apenas que ele não se destina a todos os casos de uso HTTP (consulte o item 1 acima) e que existem algumas dores de cabeça envolvidas na colocação do Volley em uso de produção em seu aplicativo (item 2).


A carga cheia de memória é o que eu lentamente me matando. Graças a Deus alguém mais mencionou.
precisa saber é o seguinte

A biblioteca também pode fazer uma cópia defensiva do seu corpo de solicitações, para que o consumo de memória para solicitações grandes possa ser o dobro do que você poderia esperar.
Jeff

9

Recentemente, eu encontrei uma biblioteca chamada ion, que traz um pouco mais à mesa.

O ion possui suporte integrado para download de imagens integrado ao ImageView, JSON (com a ajuda do GSON), arquivos e um suporte de encadeamento de interface do usuário muito útil.

Estou usando em um novo projeto e até agora os resultados foram bons. Seu uso é muito mais simples que o Volley ou o Retrofit.


2
ion vs retrofit, qual você recomendaria?
Sreekanth Karumanaghat

Retrofit é melhor do que ion
Rajesh Koshti 8/16

4

Adicionando à resposta aceita e ao que LOG_TAG disse ... para que o Volley analise seus dados em um encadeamento em segundo plano, você deve subclasse, Request<YourClassName>pois o onResponsemétodo é chamado no encadeamento principal e a análise no encadeamento principal pode causar um atraso na interface do usuário se sua resposta é grande. Leia aqui sobre como fazer isso.


1
right ... voleibol analisa a resposta no thread principal que faz com que a interface do usuário fique atrasada quando a resposta é realmente grande.
Gopal Singh Sirvi

3

Retrofit 1.9.0 vs. RoboSpice

Estou usando os dois no meu aplicativo.

O Robospice funciona mais rápido que o Retrofit sempre que eu analiso a classe JSON aninhada. Porque o Spice Manger fará tudo por você. No Retrofit, você precisa criar o GsonConverter e desserializar.

Criei dois fragmentos na mesma atividade e liguei ao mesmo tempo com dois mesmos tipos de URLs.

09-23 20:12:32.830  16002-16002/com.urbanpro.seeker E/RETROFIT   RestAdapter Init
09-23 20:12:32.833  16002-16002/com.urbanpro.seeker E/RETROFIT calling the method
09-23 20:12:32.837  16002-16002/com.urbanpro.seeker E/ROBOSPICE initialzig spice manager
09-23 20:12:32.860  16002-16002/com.urbanpro.seeker E/ROBOSPICE Executing the method
09-23 20:12:33.537  16002-16002/com.urbanpro.seeker E/ROBOSPICE on SUcceess
09-23 20:12:33.553  16002-16002/com.urbanpro.seeker E/ROBOSPICE gettting the all contents
09-23 20:12:33.601  16002-21819/com.urbanpro.seeker E/RETROFIT deseriazation starts
09-23 20:12:33.603  16002-21819/com.urbanpro.seeker E/RETROFIT deseriazation ends

2

E mais uma opção: https://github.com/apptik/jus

  • É modular como o Volley, mas mais estendido e a documentação está melhorando, suportando diferentes pilhas e conversores HTTP prontos para uso
  • Possui um módulo para gerar mapeamentos de interface da API do servidor, como Retrofit
  • Também possui suporte a JavaRx

E muitos outros recursos úteis, como marcadores, transformadores, etc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.