package com.socks.jiandan.net;
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.reflect.TypeToken;
import com.socks.jiandan.model.Joke;
import org.json.JSONObject;
import java.util.ArrayList;
/**
* 段子数据请求器
*/
public class Request4Joke extends Request<ArrayList<Joke>> {
private Response.Listener<ArrayList<Joke>> mListener;
public Request4Joke(String url, Response.Listener<ArrayList<Joke>> listener,
Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.mListener = listener;
}
@Override
protected Response<ArrayList<Joke>> parseNetworkResponse(NetworkResponse response) {
try {
String jsonStr = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
jsonStr = new JSONObject(jsonStr).getJSONArray("comments").toString();
return Response.success((ArrayList<Joke>) JSONParser.toObject(jsonStr,
new TypeToken<ArrayList<Joke>>() {
}.getType()), HttpHeaderParser.parseCacheHeaders(response));
} catch (Exception e) {
e.printStackTrace();
return Response.error(new ParseError(e));
}
}
@Override
protected void deliverResponse(ArrayList<Joke> response) {
mListener.onResponse(response);
}
}