The minimal set of steps needed to
retrieve data from a URL using a URLConnection
object are these:
Construct a URL
object.
Invoke the URL
object’s
openConnection( )
method to retrieve a
URLConnection
object for that URL.
Invoke the URLConnection
’s
getInputStream( )
method.
Read from the input stream using the usual stream API.
The getInputStream( )
method returns a generic
InputStream
, which lets you read and parse the
data that the server sends yourself.
public InputStream getInputStream( )
Example 15.1 uses the getInputStream( )
method to download a web page.
Example 15-1. Download a Web Page with a URLConnection
import java.net.*; import java.io.*; public class SourceViewer2 { public static void main (String[] args) { if (args.length > 0) { try { //Open the URLConnection for reading URL u = new URL(args[0]);URLConnection uc = u.openConnection( );
InputStream raw = uc.getInputStream( );
InputStream buffer = new BufferedInputStream(raw); // chain the InputStream to a Reader Reader r = new InputStreamReader(buffer); int c; while ((c = r.read( )) != -1) { System.out.print((char) c); } } catch (MalformedURLException e) { System.err.println(args[0] + " is not a parseable URL"); } catch (IOException e) { System.err.println(e); } } // end if } // end main } // end SourceViewer2
It is no accident that this program is almost the same as Example 15.5. The openStream( )
method
of the URL
class just returns an
InputStream
from its own
URLConnection
object. The output is identical as
well, so I won’t repeat it here.
The differences between URL
and
URLConnection
aren’t apparent with just a
simple input stream as in this example. The biggest differences
between the two classes are:
URLConnection
provides access to the MIME header
associated with an HTTP 1.0 response.
URLConnection
lets you configure the request
parameters sent to the server.
URLConnection
lets you write data to the server as
well as read data from the server.
3.129.70.157