package util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class GetRequest {
private URL url;
public GetRequest(URL u){
url = u;
}
public GetRequest(String s) throws MalformedURLException{
url = new URL(s);
}
public String request() throws IOException{
URLConnection con = url.openConnection();
con.setRequestProperty("Accept-Charset", "UTF-8");
InputStream is =con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line = null;
StringBuffer buffer = new StringBuffer();
while ((line = br.readLine()) != null) {
buffer.append(line+"\n");
}
return buffer.toString().trim();
}
public URL detectRedirect() throws IOException {
URL u = url;
HttpURLConnection ucon;
int i = 0;
do{
i++;
if(i >= 100)
throw new IOException("redirect limit exceeded");
ucon = (HttpURLConnection) u.openConnection();
ucon.setInstanceFollowRedirects(false);
if(ucon.getHeaderField("Location") == null)
break;
URL u2 = new URL(u,ucon.getHeaderField("Location"));
if(u.equals(u2))
break;
u = u2;
}while(ucon.getResponseCode() != 200);
return u;
}
}