上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Android][Volley]最新バージョンだとJsonArrayRequestがPOSTに対応していた

Androidアプリ用のネットワークライブラリとしてメジャーで使いやすいVolley。
Google製というのも多少安心感がある。

サーバとJSONでやりとりする場合は非常に便利で、使用していたんですが、 レスポンス結果がJSON形式の配列の場合に使用するJsonArrayRequestが少し不便でした。

コンストラクタが以下しかなくて、GETリクエストしか送れずPOSTでリクエストしたい場合、ちょっと面倒でした。。。

public JsonArrayRequest(String url, Listener listener, ErrorListener errorListener) {
super(Method.GET, url, null, listener, errorListener);
}


以下のように、同様に不便に感じている人も多かったと思います。
継承して、POSTメソッドでリクエストできるようにカスタマイズ対応が必要でした。
Volley - Sending a POST request using JSONArrayRequest

ところが、春ごろに本家のほうにGET/POSTが指定できるコンストラクタが追加されたみたいです。
https://android.googlesource.com/platform/frameworks/volley/+/master/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java#54

@Override
protected Response parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
return Response.success(new JSONArray(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}


これで、ようやくカスタマイズが必要なくなりました。
ライブラリのバージョンアップって、今まで動いてたものが動かなくならないか怖く中々踏み出しにくいが、やはり、こまめにアップデートは必要ですね。。。


プロフィール

hiiro

Author:hiiro

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Counter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。