java URL编程
一、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代码实现:
/**
* 使用URL直接读取或写入网络上的数据
* 2016/5/6
**/
package org.net; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*; public class NetTest_1 {
public static void main(String[] args) throws Exception {
//String str = "http://www.imooc.com";
URL imooc = new URL("http://www.imooc.com");
//#号后面表示锚点
URL url = new URL(imooc,"/index.html?username = tom#test");
System.out.println("protocol(协议):" + url.getProtocol());
System.out.println("host(主机): " + url.getPort());
//如果没有制定端口号,则使用默认的端口号 此时getPort()方法的返回值为-1
System.out.println("port(端口): " + url.getPort());
System.out.println("path(路径): " + url.getPath());
System.out.println("file(文件): " + url.getFile());
System.out.println("Ret(文件类型): " + url.getRef());
System.out.println("DefaultPort(默认端口): " + url.getDefaultPort());
System.out.println("query(用户): " + url.getQuery());
System.out.println("content(内容): " + url.getContent());
}
}
结果:
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上的数据。
代码实现:
/**
* 读取Internet上的数据
* 2016/5/6
**/
package org.net;
import java.io.*;
import java.net.*; public class NetTest_2 {
static int ch;
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.imooc.com");
URLConnection uc = url.openConnection();
System.out.println("文件类型: "+ uc.getContentType());
System.out.println("文件长度: "+ uc.getContentLength());
System.out.println("文件内容:");
System.out.println("###############################");
InputStream is = uc.getInputStream();
while((ch = is.read()) != -1){
System.out.print((char)ch);
}
is.close();
}
}
结果展示:
文件类型: 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">
.............(后边比较长,不再显示)
java URL编程的更多相关文章
- 基于URL的高层次Java网络编程
一致资源定位器URL URL(Uniform Resource Locator)是一致资源定位器的简称,它表示Internet上某一资源的地址.通过URL我们可以访问Internet上的各种网络资源, ...
- Java EE 编程中路径
版权声明:未经博主允许,不得转载 首先我们要限定一个范围,是一个项目,或是以个访问地址..就先以一个项目为限定的范围 前述: 学过物理学的都知道相对运动和绝对运动, 虽然是相似的概念,但这里的要简单得 ...
- Java Socket编程题库
一. 填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...
- Java程序员从笨鸟到菜鸟之(十三)java网络通信编程
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 首先声明一下,刚开始学习java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所 ...
- 如何为可扩展系统进行Java Socket编程
从简单I/O到异步非阻塞channel的Java Socket模型演变之旅 上世纪九十年代后期,我在一家在线视频游戏工资工作,在哪里我主要的工作就是编写Unix Unix Berkley Socket ...
- Java多线程编程的常见陷阱(转)
Java多线程编程的常见陷阱 2009-06-16 13:48 killme2008 blogjava 字号:T | T 本文介绍了Java多线程编程中的常见陷阱,如在构造函数中启动线程,不完全的同步 ...
- Java 网络编程---分布式文件协同编辑器设计与实现
目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...
- Java多线程编程总结(精华)
Java多线程编程总结 2007-05-17 11:21:59 标签:多线程 java 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http ...
- Java 网络编程(Elliotte Rusty Harold)
最近看了本Java网络编程方面的书,系统化一下Java网络编程,主要内容如下: 1.网络基础篇 这里包括基础的网络概念/ 输入输出流BIO/ Internet地址/URI/URL/HTTP/URLCo ...
随机推荐
- Dojo的UI框架bootstrap for dojo和Dojo-Bootstrap简介
最近在学习Dojo,但样式问题真是头疼呀,虽然清新的淡蓝色很是减缓眼睛的疲劳,但这个扁平化简约风盛行的年代,光是清新的拟物已经满足不了群众的需求了,所以就在这样的需求下,我知道了bootstrap f ...
- echarts x轴或y轴文本字体颜色改变
1:x轴文本字体颜色改变 xAxis : [ { type : 'category', data : ['<30','30-','40-','50-','60-','>=70'], axi ...
- Python爬虫----Beautiful Soup4 基础
1. Beautiful Soup简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyth ...
- 今天写动态canvas柱状图小结
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- ubuntu 14.04 opencv2.4.13 安装
1.下载然后解压安装压缩包 unzip opencv-2.4.13.zip 2. 进入刚解压的文件夹,建立release文件夹 cd opencv-2.4.13 mkdir release 3. 安装 ...
- css3 div垂直居中
css3: #dd{ height: 300px; background: #0000cc; display: -webkit-box; display: flex; display: -webkit ...
- java复习 --集合类
List接口:可以存放重复内容: set接口:不能存放重复内容,重复内容依靠hashcode和equal两个方法来区分: Queue:队列: SortedSet接口:对集合中的数据进行排序: Li ...
- [妙味JS基础]第三课:自定义属性、索引值
知识点总结 自定义属性 元素.自定义属性 = 值: 比如: oDiv.abc = 100; =>abc为自定义属性 索引值 index =>也是自定义属性 oDiv.index = '' ...
- hdu_5927_Auxiliary Set(xjb搞)
题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点 ...
- infix to postfix 完整版
#include<iostream> #include<stack> #include<string> #include<deque> using na ...