Java Tutorial/Network/Web Page

Материал из Java эксперт
Перейти к: навигация, поиск

HTTP Grab with FileChannel

   <source lang="java">

import java.io.FileOutputStream; import java.io.IOException; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.URL; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.SocketChannel; public class MainClass {

 public static void main(String[] args) throws IOException {
   URL u = new URL("http://www.jexp.ru");
   String host = u.getHost();
   int port = 80;
   String file = "/";
   SocketAddress remote = new InetSocketAddress(host, port);
   SocketChannel channel = SocketChannel.open(remote);
   FileOutputStream out = new FileOutputStream("yourfile.htm");
   FileChannel localFile = out.getChannel();
   String request = "GET " + file + " HTTP/1.1\r\n" + "User-Agent: HTTPGrab\r\n"
       + "Accept: text/*\r\n" + "Connection: close\r\n" + "Host: " + host + "\r\n" + "\r\n";
   ByteBuffer header = ByteBuffer.wrap(request.getBytes("US-ASCII"));
   channel.write(header);
   ByteBuffer buffer = ByteBuffer.allocate(8192);
   while (channel.read(buffer) != -1) {
     buffer.flip();
     localFile.write(buffer);
     buffer.clear();
   }
   localFile.close();
   channel.close();
 }

}</source>





Save Web page to a file

   <source lang="java">

import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import javax.swing.text.html.parser.DTD; public class MainClass {

 public static void main(String[] args) {
   try {
     URL u = new URL("http://www.jexp.ru");
     OutputStream out = new FileOutputStream("test.htm");
     InputStream in = u.openStream();
     DTD html = DTD.getDTD("html");
     System.out.println(html.getName());
     in.close();
     out.flush();
     out.close();
   } catch (Exception e) {
     System.err.println("Usage: java PageSaver url local_file");
   }
 }

}</source>