Hoje quebrei a cabeça tentando fazer isso funcionar.
Procurei em vários foruns e sites até que finalmente um codigo funcionou:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class UrlHttp
{
public static void main(String[] args)
{
try
{
URL url = new URL(minhaUrl);
URLConnection conn = url.openConnection();
// fake request coming from browser
conn.setRequestProperty("User-Agent", "Mozilla/5.0 "
+ "(Windows; U; Windows NT 6.1; en-GB; "
+ "rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 "
+ "(.NET CLR 3.5.30729)");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String f = "";
while ((f = in.readLine()) != null)
{
System.out.print(f );
}
in.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Sem setar o “User-Agent” no método conn.setRequestProperty, a url que estava requisitando não funcionava.
após adicionar a propriedade “User-Agent” o programa funcionou.
Esse era o erro que estava tendo aqui:
java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.minhaurl.com.br
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1612)
at urlhttp.UrlHttp.main(UrlHttp.java:25)
Notei que para alguns sites isso já é suficiente:
conn.setRequestProperty(“User-Agent”, “”);
Deixo agora esse post para que ajude outros futuramente.
