Java中基于HTTP协议网络编程
java中为我们的网络支持提供了java.net包,能够使我们以编程的方式来訪问Web服务功能,这篇博客,就跟大家分享一下。Java中的网络编程的知识。主要是学习下该java.net包下的API。
URI——>URL
URI:表示的是统一的资源标识,它是以某种统一的方式标识资源的简单字符串。
这样的字符串以scheme开头。
URL:表示统一的资源定位器的任务,URL是一种URI。
URN:一般不能为资源提供持久不变的名称。这是统一的资源命名的任务。URN也是一种URI,但它是全球唯一的、持久不变的。即使资源不再存在或不再使用。
URL类
URL类代表一个统一资源定位符,资源能够是简单的文件夹。也能够是复杂的对象,比如对数据库或搜索引擎的查询。
URL类为我们提供了不同的构造方法
1.依据地址构造URL
public URL(String spec);——————————————URL url=new URL("www.baidu.com")
2.依据协议、主机名、端口和文件创造
public URL(String protocol,String host,int port,String file)
URL封装对象信息
URL对象封装了一些对象的信息,比方URL对象的端口号、头内容、主机名、协议名称等
/**
* @FileName: URLTest.java
* @Package:com.socket
* @Description: TODO
* @author: LUCKY
* @date:2015年12月11日 上午8:48:34
* @version V1.0
*/
package com.socket; import java.awt.image.ImageProducer;
import java.net.URL; /**
* @ClassName: URLTest
* @Description: TODO
* @author: LUCKY
* @date:2015年12月11日 上午8:48:34
*/
public class URLTest {
public static void main(String[] args) {
try {
//依据地址创建
URL url=new URL("http://ww2.sinaimg.cn/large/70c8c5b7gw1erdli8ka8vj21360m1ju9.jpg");
//取得信息
System.out.println(url.getAuthority());
System.out.println(url.getPath());
System.out.println(url.getPort());
System.out.println(url.getDefaultPort());
System.out.println(url.getFile());
System.out.println(url.getProtocol());
Object o=url.getContent();
if(o instanceof ImageProducer){
ImageProducer i=(ImageProducer)o;
System.out.println(i);
} } catch (Exception e) {
// TODO: handle exception
}
}
}
URLConnection网页连接类
有了URL后。怎样来与网页进行连接呢。这时候就须要URLConnection类来为我们服务。
它代表应用程序和URL之间的通信连接。
通常创建RUL连接须要下面几个步骤。
1.通过在URL上调用openConnection()方法创建链接对象。
2.设置请求參数的一般请求属性
经常使用的属性有是否执行用户交互、能否够输入输出、是否启用缓存等
3.使用connect()方法建立到远程对象的实际连接
4.在建立到远程对象的连接后,获取訪问的字段和内容
比方获取文件的类型、文件的创建时间、文件的过期时间、文件的长度等
5.最后须要关闭连接
/**
* @FileName: URLConnectionTest.java
* @Package:com.socket
* @Description: TODO
* @author: LUCKY
* @date:2015年12月11日 上午8:54:24
* @version V1.0
*/
package com.socket; import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection; import com.sun.org.apache.xerces.internal.util.URI.MalformedURIException; /**
* @ClassName: URLConnectionTest
* @Description: TODO
* @author: LUCKY
* @date:2015年12月11日 上午8:54:24
*/
public class URLConnectionTest { public static void main(String[] args) throws Exception {
try {
//依据地址创建URL
URL url=new URL("http://ww2.sinaimg.cn/large/70c8c5b7gw1erdli8ka8vj21360m1ju9.jpg");
//获得urlConnecion
URLConnection connection=url.openConnection();
//打开连接
connection.connect();
//取得属性
System.out.println(connection.getContentLength());
System.out.println(connection.getContentType());
System.out.println(connection.getDate());
System.out.println(connection.getExpiration());
System.out.println(connection.getLastModified());
//读取网页数据
int c;
InputStream is=connection.getInputStream();
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("copy.png"));
while((c=is.read())!=-1){
out.write(c);
System.out.println((char)c);
}
out.flush();
is.close(); } catch (MalformedURIException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
Java中基于HTTP协议网络编程的更多相关文章
- Java:基于TCP协议网络socket编程(实现C/S通信)
目录 一.前言:TCP原理简介 二.Socket编程通信 三.TCP服务器端(具体代码) 四.TCP客户端(具体代码) 五.通信效果演示 六."创意"机器人:价值一个亿的AI核心代 ...
- 基于TCP协议网络编程
1.TCP/IP是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路: 一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路来进行通信: 2.Java对基 ...
- Qt基于tcp协议网络编程
基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : ne ...
- (1)线程的同步机制 (2)网络编程的常识 (3)基于tcp协议的编程模型
1.线程的同步机制(重点)1.1 基本概念 当多个线程同时访问同一种共享资源时可能会造成数据的覆盖和不一致等问题,此时就需要对线程之间进行协调和通信,该方式就叫线程的同步机制. 如: 2003年左右 ...
- (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型
1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...
- Java网络编程和NIO详解9:基于NIO的网络编程框架Netty
Java网络编程和NIO详解9:基于NIO的网络编程框架Netty 转自https://sylvanassun.github.io/2017/11/30/2017-11-30-netty_introd ...
- Java中的UDP协议编程
一. UDP协议定义 UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层.UDP有不提供数据报分组.组装和不能对数据包 ...
- JAVA第十周《网络编程》学习内容总结
JAVA第十周<网络编程>学习内容总结 学习内容总结 1.初听到网络编程四个字可能会觉得很困难,实际上网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据,把数据发送到指定的位置, ...
- 20155324 《Java程序设计》实验五 网络编程与安全
20155324 <Java程序设计>实验五 网络编程与安全 实验内容 任务一 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实现从上面功能中获取的表达式中 ...
随机推荐
- Kali linux 2016.2(Rolling)安装之后的常用配置
前言 使用默认的Kali Linux设置来学习是可以的,但是我们通常要修改系统的一些基本设置,来最大化使用Kali平台的功能. 以下内容 网络的基础知识 使用图形用户界面来配置网卡 使用命令行来配置网 ...
- 国内使用pip / pip with GFW / pip 镜像
sudo pip install -i https://pypi.doubanio.com/simple/ YOUR_PACKAGE_NAME --trusted-host pypi.doubanio ...
- 由一维数组表示的N维数组实现(C++)
工作中,经常需要表示多维数组(如二维矩阵),常见的做法是使用T **pArr: T **pArr = new T*[M];//创建二维数组[M][N] ;i<M;i++) { pArr[i] = ...
- LN : leetcode 231 Power of Two
lc 231 Power of Two 231 Power of Two Given an integer, write a function to determine if it is a powe ...
- 关于css宽高问题
问题:span标签的width和height分别为多少? <!DOCTYPE html> <html> <head> <meta charset=" ...
- 前端面试题HTML
浏览器页面有哪三层构成,分别是什么,作用是什么?
- mongodb Shell 启动
开始运行mongodb 准备 上篇说过,通过brew安装的程序目录在 /usr/local/Cellar下面 下面,我们先看一下 mongodb的可执行程序命令 cd /usr/local/Cella ...
- IIS发布403报错
报错信息如下图 解决方案,inetmgr打开IIS,找到对应网站的目录浏览,双击 开启
- day02python
''' 列表 定义:在[]内,可以存放多个任意类型的值,并以逗号隔开. 一般用于存放学生的爱好,课堂的周期等等... ''' students=['钱垚','李小龙','张全蛋','赵铁柱'] pri ...
- 【转载】jQuery.extend 函数详解
转载自:http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729563.html jQuery.extend 函数详解 JQuery的e ...