読者です 読者をやめる 読者になる 読者になる

Retrofit使ってて詰まったところとか

Android

詰まったところを共有していこうかなって。

しょっぱながJsonArrayから始まってた

stackoverflow.com
Jsonがいきなり[]から始まる奴のパースの仕方。
Kくんも困ってたこの問題、自分はちゃんとこれで解決できた。
てか、普通に{}で始めてほしい...

MailAddressをPOSTする時

エンコードしろって怒られる。
@FormUrlEncoded
使うか、ちゃんとエンコードして渡せばいけた。

叩いたAPIがリダイレクトするのを無視したい

stackoverflow.com

final OkHttpClient client = new OkHttpClient();
client.setFollowRedirects(true);

これをRestAdapterにセットしてあげれば行ける。
ちょっと闇感じる。
てか、リダイレクトして帰ってきた奴はfailureに行くのかな?
ここら辺よくわかなんないけど、パス!

JsonのKeyが動的に変わる

stackoverflow.com
普通に変わるやつをMapで置けばいいだけだった。
Map#keysetか何かでKey一覧取れるし、Valueもちゃんととれていい感じ。
Map最強。
Gsonに少し詳しくなった。

GETの時のデフォルトのパラメータのセット

github.com

@GET(Const.API.NEW_LIST + "?order=new")
void getNewList(CallbackNewrList> callback);

GETの時はURLに含められるけど、POSTの時はどうすればいいんだろう。
前は@QueryParamみたいなのがあったらしい。
今はどうなんだろう。

パラメータにNull渡した時の挙動

POSTでもGETでもQueryやFieldにNull渡した時はRequestに含まれないらしい。
非常に便利。
必須パラメータだけ@NonNullアノテーションつけたら非常に良い運用ができそうな気がした。

最後に

RetrofitなしじゃAPIを叩けない体になった。
Retrofitマスターに俺はなる!!!!!