В настоящее время я использую свое приложение Android (Java) в API 27. В настоящее время я все еще использую метод HTTP в устаревшем режиме, но я хочу переключиться на HTTPURLConnection, чтобы иметь возможность обновиться до API 28.
Чтобы начать с HTTPURLConnection, мне нужно добавить две эти вещи:
import java. net .HttpURLConnection; import java. net .URL;
У кого-нибудь есть чаевые?
package de.andreas_rothhardt.rssbywapphosting;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
public class RSSReader implements java.io.Closeable {
private final HttpClient httpclient;
private final RSSParserSPI parser;
public RSSReader(HttpClient httpclient, RSSParserSPI parser) {
this.httpclient = httpclient;
this.parser = parser;
}
public RSSReader(HttpClient httpclient, RSSConfig config) {
this(httpclient, new RSSParser(config));
}
public RSSReader(RSSConfig config) {
this(new DefaultHttpClient(), new RSSParser(config));
}
public RSSReader() {
this(new DefaultHttpClient(), new RSSParser(new RSSConfig()));
}
public RSSFeed load(String uri) throws RSSReaderException {
final HttpGet httpget = new HttpGet(uri);
InputStream feedStream = null;
try {
final HttpResponse response = httpclient.execute(httpget);
final StatusLine status = response.getStatusLine();
if (status.getStatusCode() != HttpStatus.SC_OK) {
throw new RSSReaderException(status.getStatusCode(),
status.getReasonPhrase());
}
HttpEntity entity = response.getEntity();
feedStream = entity.getContent();
RSSFeed feed = parser.parse(feedStream);
if (feed.getLink() == null) {
feed.setLink(android.net.Uri.parse(uri));
}
return feed;
} catch (ClientProtocolException e) {
throw new RSSFault(e);
} catch (IOException e) {
throw new RSSFault(e);
} finally {
Resources.closeQuietly(feedStream);
}
}
public void close() {
httpclient.getConnectionManager().shutdown();
}
}