Java tutorial
/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package eu.the4thfloor.volleyextended.toolbox; import eu.the4thfloor.volleyextended.NetworkResponse; import eu.the4thfloor.volleyextended.ParseError; import eu.the4thfloor.volleyextended.Response; import eu.the4thfloor.volleyextended.Response.ErrorListener; import eu.the4thfloor.volleyextended.Response.Listener; import org.json.JSONException; import org.json.JSONObject; import java.io.UnsupportedEncodingException; /** * A request for retrieving a {@link JSONObject} response body at a given URL, allowing for an * optional {@link JSONObject} to be passed in as part of the request body. */ public class JsonObjectRequest extends JsonRequest<JSONObject> { /** * Creates a new request. * * @param method * the HTTP method to use * @param url * URL to fetch the JSON from * @param jsonRequest * A {@link JSONObject} to post with the request. Null is allowed and * indicates no parameters will be posted along with request. * @param listener * Listener to receive the JSON response * @param errorListener * Error listener, or null to ignore errors. */ public JsonObjectRequest(final int method, final String url, final JSONObject jsonRequest, final Listener<JSONObject> listener, final ErrorListener<JSONObject> errorListener) { super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), listener, errorListener); } /** * Constructor which defaults to <code>GET</code> if <code>jsonRequest</code> is <code>null</code>, <code>POST</code> otherwise. * * @see #JsonObjectRequest(int, String, JSONObject, Listener, ErrorListener) */ public JsonObjectRequest(final String url, final JSONObject jsonRequest, final Listener<JSONObject> listener, final ErrorListener<JSONObject> errorListener) { this(jsonRequest == null ? Method.GET : Method.POST, url, jsonRequest, listener, errorListener); } @Override protected Response<JSONObject> parseNetworkResponse(final NetworkResponse response) { try { final String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (final UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (final JSONException je) { return Response.error(new ParseError(je)); } } }