一、URL编程技术
URL是统一资源定位器的缩写,它是指向互联网“资源”的指针。URL表示了Internet上某个资源的地址。URL支持http,file,ftp等 多种协议。通过URL标识,可以直接使用通信协议获取远端计算机上的资源信息,方便快捷的开发Internet应用程序。
java.net 包中的URL类是对统一资源定位符的抽象,使用URL创建对象的应用程序称为客户端程序,一个URL对象存放着一个具体的资源的引用,表明客户要访问这个 URL中的资源,利用URL对象可以获取URL中的资源。一个URL对象通常包含最基本的三部分信息:协议、地址、资源。协议必须是URL对象所在的 JVM支持的协议,常用的协议如:HTTP、FTP等都是JVM支持的协议,地址必须是能连接的有效的IP地址或域名地址,资源可以是主机上的任何一个文 件。
URL代码实现:
1 /** 2 * 使用URL直接读取或写入网络上的数据 3 * 2016/5/6 4 **/ 5 package org.net; 6 7 import java.io.BufferedReader; 8 import java.io.IOException; 9 import java.io.InputStreamReader; 10 import java.net.*; 11 12 public class NetTest_1 { 13 public static void main(String[] args) throws Exception { 14 //String str = "http://www.imooc.com"; 15 URL imooc = new URL("http://www.imooc.com"); 16 //#号后面表示锚点 17 URL url = new URL(imooc,"/index.html?username = tom#test"); 18 System.out.println("protocol(协议):" + url.getProtocol()); 19 System.out.println("host(主机): " + url.getPort()); 20 //如果没有制定端口号,则使用默认的端口号 此时getPort()方法的返回值为-1 21 System.out.println("port(端口): " + url.getPort()); 22 System.out.println("path(路径): " + url.getPath()); 23 System.out.println("file(文件): " + url.getFile()); 24 System.out.println("Ret(文件类型): " + url.getRef()); 25 System.out.println("DefaultPort(默认端口): " + url.getDefaultPort()); 26 System.out.println("query(用户): " + url.getQuery()); 27 System.out.println("content(内容): " + url.getContent()); 28 } 29 }
结果:
protocol(协议):http
host(主机): -1
port(端口): -1
path(路径): /index.html
file(文件): /index.html?username = tom
Ret(文件类型): test
DefaultPort(默认端口): 80
query(用户): username = tom
content(内容): sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@5c647e05
UPLConnection类
URLConnection用于应用程序和URL之间的连接,应用程序通过URLConection可以获得URL对象的相关信息,它是所有URL连接通信类的父类。该类的对象可以用来读写URL对象所表示的Internet上的数据。
代码实现:
1 /** 2 * 读取Internet上的数据 3 * 2016/5/6 4 **/ 5 package org.net; 6 import java.io.*; 7 import java.net.*; 8 9 public class NetTest_2 { 10 static int ch; 11 public static void main(String[] args) throws Exception { 12 URL url = new URL("http://www.imooc.com"); 13 URLConnection uc = url.openConnection(); 14 System.out.println("文件类型: "+ uc.getContentType()); 15 System.out.println("文件长度: "+ uc.getContentLength()); 16 System.out.println("文件内容:"); 17 System.out.println("###############################"); 18 InputStream is = uc.getInputStream(); 19 while((ch = is.read()) != -1){ 20 System.out.print((char)ch); 21 } 22 is.close(); 23 } 24 }
结果展示:
文件类型: text/html; charset=utf-8
文件长度: -1
文件内容:
###############################
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>æ课ç½-å½åæ大çITæè½å¦ä¹ å¹³å°</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
.............(后边比较长,不再显示)