If you think the Android project iosched2011 listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright 2011 Google Inc./*www.java2s.com*/
*
* 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 com.google.android.apps.iosched.io;
import com.google.android.apps.iosched.io.XmlHandler.HandlerException;
import com.google.android.apps.iosched.util.ParserUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.content.ContentResolver;
import java.io.IOException;
import java.io.InputStream;
/**
* Executes an {@link HttpUriRequest} and passes the result as an
* {@link XmlPullParser} to the given {@link XmlHandler}.
*/publicclass RemoteExecutor {
privatefinal HttpClient mHttpClient;
privatefinal ContentResolver mResolver;
public RemoteExecutor(HttpClient httpClient, ContentResolver resolver) {
mHttpClient = httpClient;
mResolver = resolver;
}
/**
* Execute a {@link HttpGet} request, passing a valid response through
* {@link XmlHandler#parseAndApply(XmlPullParser, ContentResolver)}.
*/publicvoid executeGet(String url, XmlHandler handler) throws HandlerException {
final HttpUriRequest request = new HttpGet(url);
execute(request, handler);
}
/**
* Execute this {@link HttpUriRequest}, passing a valid response through
* {@link XmlHandler#parseAndApply(XmlPullParser, ContentResolver)}.
*/publicvoid execute(HttpUriRequest request, XmlHandler handler) throws HandlerException {
try {
final HttpResponse resp = mHttpClient.execute(request);
finalint status = resp.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
thrownew HandlerException("Unexpected server response " + resp.getStatusLine()
+ " for " + request.getRequestLine());
}
final InputStream input = resp.getEntity().getContent();
try {
final XmlPullParser parser = ParserUtils.newPullParser(input);
handler.parseAndApply(parser, mResolver);
} catch (XmlPullParserException e) {
thrownew HandlerException("Malformed response for " + request.getRequestLine(), e);
} finally {
if (input != null) input.close();
}
} catch (HandlerException e) {
throw e;
} catch (IOException e) {
thrownew HandlerException("Problem reading remote response for "
+ request.getRequestLine(), e);
}
}
}