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实现从上面功能中获取的表达式中 ...
随机推荐
- Java对象简单实用(计算器案例)
对 Java中的对象与属性,方法的使用,简单写了个案例 import java.util.Scanner; class Calculste { int a; //定义两个整数 int b; Strin ...
- MySql学习笔记(2)-简介
一.什么是MySql MySql是开放源代码的数据库管理系统之一: MySql是一个支持多线程高并发多用户的关系型数据库管理系统: MySql最擅长的是查询性能,而不是事务处理(需要借助第三方存储引擎 ...
- 由一维数组表示的N维数组实现(C++)
工作中,经常需要表示多维数组(如二维矩阵),常见的做法是使用T **pArr: T **pArr = new T*[M];//创建二维数组[M][N] ;i<M;i++) { pArr[i] = ...
- PostgreSQL 流复制+高可用
QA PgPool-II 同步 Postgresql X1 服务器准备 192.168.59.121 PostgreSQL10 192.168.59.120 PGPool-II 3.7 X2 安装Po ...
- sed -i 报错的情况
是因为替换的变量中带/的目录名 将原来的/改成#
- Python-Day07-图形用户界面和游戏开发
Python-100Day-学习打卡Author: Seven_0507Date: 2019-05-22123 文章目录Python图形用户界面和游戏开发1. tkinter模块2. Pygame进行 ...
- CAD多个点构造选择集(网页版)
主要用到函数说明: IMxDrawSelectionSet::SelectByPolygon 在多个点组合的闭合区域里,构造选择集.详细说明如下: 参数 说明 [in] IMxDrawPoints* ...
- Java实现打包文件
把文件打包到压缩包里 public void zip (String... files) throws IOException { //创建文件打包流对象 ZipOutputStream zos = ...
- 习题练习(视觉slam14讲课后习题)
设有⼩萝⼘1⼀号和⼩萝⼘⼆号位于世界坐标系中. ⼩萝⼘⼀号的位姿为:q1 = [0.55, 0.3, 0.2, 0.2], t1 = [0.7, 1.1, 0.2]T(q 的第⼀项为实部).这⾥的 q ...
- java string与byte互转
1.string 转 byte[]byte[] midbytes=isoString.getBytes("UTF8");//为UTF8编码byte[] isoret = srt2. ...