Re: displaying URL contents via an applet
On 15-8-2006 22:59, Oliver Wong wrote:
"yawnmoth" <terra1024@yahoo.com> wrote in message
news:1155673749.875769.74090@b28g2000cwb.googlegroups.com...
I'm trying to, via an applet, download the contents of a URL and
display them. To that end - I've written test.java (which follows).
Unfortunately, it doesn't work. After showing the "splash screen" for
a while, it doesn't output anything. Any ideas as to why?:
[most of the code snipped]
URL url = new URL("http://www.google.com/");
Google explicitly blocks Java programs from connecting to it.
The Google home page isn't, but a search URL is (e.g.
http://www.google.com/search?q=Java).
It can, however, easily be circumvented by supplying a "User-Agent"
request header with the UA string of one of the major browsers as its value.
import java.io.*;
import java.net.*;
public class GoogleAccess {
private static final String USER_AGENT
= "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
rv:1.8.0.6) "
+ "Gecko/20060728 Firefox/1.5.0.6";
public static void main(String[] args) throws IOException {
URL url = new URL("http://www.google.com/search?q=Java");
HttpURLConnection connection = (HttpURLConnection)
url.openConnection();
connection.addRequestProperty("User-Agent", USER_AGENT);
String contentType = connection.getContentType();
String contentEncoding = connection.getContentEncoding();
int responseCode = connection.getResponseCode();
System.out.println("responseCode=" + responseCode + ";
contentType="
+ contentType + "; contentEncoding=" + contentEncoding);
InputStreamReader reader = new InputStreamReader(connection
.getInputStream(), contentEncoding == null ? "ISO-8859-1"
: contentEncoding);
int ch;
while ((ch = reader.read()) != -1) {
System.out.print((char) ch);
}
reader.close();
connection.disconnect();
}
}
--
Regards,
Roland