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实现从上面功能中获取的表达式中 ...
随机推荐
- js截取字符串 区分中英文
方法如下: //在一个字符串中截取前面部分文字,汉字.全角符号按2个占位,数字英文.半角按一个占位,未显示完的最后加入“……”. //适合多行显示. function suolve(str, sub_ ...
- Spark学习之编程进阶——累加器与广播(5)
Spark学习之编程进阶--累加器与广播(5) 1. Spark中两种类型的共享变量:累加器(accumulator)与广播变量(broadcast variable).累加器对信息进行聚合,而广播变 ...
- android开发小内容
EditText弹出输入数字:android:inputType="phone"
- 后台接收不到postman发送的xml参数的解决办法
首先在body下复制需要传的xml: 然后点击url右边的Params,添加key和value.value和body下的xml是一样的: 最后点击send,后台就能接收到参数了.
- dubbo之日志适配及访问日志
日志适配 自 2.2.1 开始,dubbo 开始内置 log4j.slf4j.jcl.jdk 这些日志框架的适配 1,也可以通过以下方式显示配置日志输出策略: 命令行 java -Ddubbo.app ...
- input password密码验证跳转页面
代码如下: 查询密码 <input type="password" id="pwd" /> 页面如下: 密码校验成功后跳转页面: window.lo ...
- (转)Oracle数据库DBA必备基本技能
[Oracle数据库DBA必备基本技能] shutdown Normal 需要等待所有的用户断开连接 Immediate 等待用户完成当前的语句 Transactional 等待用户完成当前的事 ...
- 数据库——DBUtils和连接池
第一章 DBUtils如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简 ...
- windows10下win+R快速打开程序
按下win+R进入运行窗口,输入应用程序名称按下回车键 即可打开该应用,若提示“windows找不到文件”,请看下一步 可以采用建立统一的目录管理,新建目录“F:/local/bin” 将新建目录的路 ...
- 通过HTTP的HEADER完成各种骚操作
作为一名专业的切图工程师,我从来不care网页的header,最多关心Status Code是不是200.但是HEADER真的很重要啊,客户端从服务器端获取内容,首先就是通过HEADER进行各种沟通! ...