package com.stardust.net;
import com.stardust.pio.UncheckedIOException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Created by Stardust on 2017/4/10.
*/
public class AutoHttpURLConnection extends HttpURLConnection implements AutoCloseable {
private HttpURLConnection mHttpURLConnection;
private InputStream mInputStream;
private OutputStream mOutputStream;
public AutoHttpURLConnection(URL url) throws IOException {
super(url);
mHttpURLConnection = (HttpURLConnection) url.openConnection();
connect();
}
public AutoHttpURLConnection(String url) throws IOException {
this(new URL(url));
}
@Override
public InputStream getInputStream() {
try {
mInputStream = super.getInputStream();
} catch (IOException e) {
throw new UncheckedIOException(e);
}
return mInputStream;
}
@Override
public void close() {
disconnect();
}
@Override
public void disconnect() {
mHttpURLConnection.disconnect();
}
@Override
public boolean usingProxy() {
return mHttpURLConnection.usingProxy();
}
@Override
public void connect() throws IOException {
mHttpURLConnection.connect();
}
}