13713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick/* 23713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Copyright (C) 2011 The Android Open Source Project 33713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * 43713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Licensed under the Apache License, Version 2.0 (the "License"); 53713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * you may not use this file except in compliance with the License. 63713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * You may obtain a copy of the License at 73713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * 83713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * http://www.apache.org/licenses/LICENSE-2.0 93713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * 103713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Unless required by applicable law or agreed to in writing, software 113713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * distributed under the License is distributed on an "AS IS" BASIS, 123713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * See the License for the specific language governing permissions and 143713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * limitations under the License. 153713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick */ 163713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 173713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpackage com.android.volley.toolbox; 183713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 193713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.NetworkResponse; 203713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Request; 213713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Response; 223713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Response.ErrorListener; 233713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Response.Listener; 243713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 253713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport java.io.UnsupportedEncodingException; 263713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 273713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick/** 283713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * A canned request for retrieving the response body at a given URL as a String. 293713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick */ 303713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpublic class StringRequest extends Request<String> { 313713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick private final Listener<String> mListener; 323713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 333713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick /** 343713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Creates a new request. 353713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * @param url URL to fetch the string at 363713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * @param listener Listener to receive the String response 373713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * @param errorListener Error listener, or null to ignore errors 383713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick */ 393713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick public StringRequest(String url, Listener<String> listener, ErrorListener errorListener) { 403713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick super(url, errorListener); 413713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick mListener = listener; 423713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 433713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 443713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick @Override 453713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick protected void deliverResponse(String response) { 463713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick mListener.onResponse(response); 473713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 483713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick 493713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick @Override 503713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick protected Response<String> parseNetworkResponse(NetworkResponse response) { 513713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick String parsed; 523713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick try { 533713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); 543713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } catch (UnsupportedEncodingException e) { 553713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick parsed = new String(response.data); 563713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 573713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response)); 583713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick } 593713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick} 60