- From: Joseph M. Futrelle <futrelle@ncsa.uiuc.edu>
- Date: Tue, 27 May 1997 14:57:50 -0500 (CDT)
- To: mark@intraspect.com
- Cc: www-jigsaw@w3.org
Method 1: make a URLStreamHandlerFactory that returns
w3c.www.protocol.http.Handlers, and make it the global URLStreamHandlerFactory,
like so:
class myURLStreamHandlerFactory implements URLStreamHandlerFactory {
public URLStreamHandler createURLStreamHandler (String protocol) {
if (protocol.equalsIgnoreCase("http")) {
return new w3c.www.protocol.http.Handler();
} else return null;
}
}
...
URL.setURLStreamHandlerFactory (new myURLStreamHandlerFactory());
w3c.www.protocol.http.HttpURLConnection c =
(w3c.www.protocol.http.HttpURLConnection) someURL.openConnection();
unfortunately you can't get the reply status using this method. But you
can get it from an ordinary java.net.HttpURLConnection with getResponseCode().
Method 2: Alternately, you can use the w3c client library like this:
HttpManager manager = HttpManager.getManager() ;
Request request = manager.createRequest() ;
request.setMethod("GET");
request.setURL("http://foo.bar/baz");
Reply reply = manager.runRequest(request) ;
System.out.println (reply.getStatus());
Hopefully this all makes sense ...
> I have a problem and a question. First the problem. I get a
> ClassCastException on the second line of the following fragment:
>
> URL url = new URL (args[0]);
> w3c.www.protocol.http.HttpURLConnection c =
> (w3c.www.protocol.http.HttpURLConnection) url.openConnection();
>
> when run with the following command line:
>
> e:\jdk1.1.1\bin\java -classpath
>
> .;c:\jigsaw-alpha5\jigsaw\classes\jigsaw.zip;e:\jdk1.1.1\lib\classes.zip
>
> -Djava.handler.protol.pkgs=w3c.www.protocol httpURLTest
> http://www.microsoft.com
>
> where httpURLTest is shown at the end of this message.
>
> My question is: How do you get the status code of an HttpURLConnection
> or a URLconnection?
>
> Thanks in advance.
>
> -Mark
>
> ------------ httpURLTest.java -----------
>
> import java.util.*;
> import java.net.*;
> import java.io.*; // FIXME - DEBUG
>
> import w3c.www.protocol.http.*;
> import w3c.www.mime.*;
> import w3c.util.*;
>
> public class httpURLTest {
>
> public static void main(String args[]) {
> try {
> URL url = new URL (args[0]);
> w3c.www.protocol.http.HttpURLConnection c =
> (w3c.www.protocol.http.HttpURLConnection) url.openConnection();
> // Display some infos:
> System.out.println("last-modified: "+c.getLastModified());
> System.out.println("length : "+c.getContentLength());
> // System.out.println("status : "+c.getStatus());
> System.out.println("location :
> "+c.getHeaderField("location"));
> // Display the returned body:
> InputStream in = c.getInputStream();
> byte buf[] = new byte[4096];
> int cnt = 0;
> while ((cnt = in.read(buf)) > 0)
> System.out.print(new String(buf, 0, 0, cnt));
> System.out.println("-");
> in.close();
> } catch (Exception ex) {
> ex.printStackTrace();
> }
> System.exit(1);
> }
> }
>
>
--
Joe Futrelle
Developer, Joule/Jigsaw Java/HTTP
National Center for Supercomputing Applications
futrelle@ncsa.uiuc.edu
(217) 265-0296
Received on Tuesday, 27 May 1997 15:57:58 UTC