URL
URL 是统一资源定位符(Uniform Resource Locator)的简称,它表示 Internet 上某一资源的地址。
通过 URL 用户可以访问各种网络资源,比如常见的 WWW 以及 FTP 站点。

网址
以“http://www.studyandroid.com/download?type=jpg&name=abc"为例:
1)http://——指网络协议
2)www.studyandroid.com——指域名
3)download——指访问域名下的”download“文件
4)”?“——表示需要传参数
5)”type=jpg“和”name=abc“——表示传递的参数
6)”&“——表示连接多个参数

URLConnection 类
在 java.net 包中,定义了专门的 URLConnection 类来表示与 URL 建立的通信连接
URLConnection 类的对象使用 URL 类的 openConnection() 方法获得。

Demo实例:
public class URLtest {
public static void main(String[] args) {
try {
URL url = new URL("http://www.qq.com/");//构造String地址
System.out.println("网站协议:" + url.getProtocol());//getProtocol()获取协议
System.out.println("网站主机:" + url.getHost());//url.getHost()获取主机地址
System.out.println("网站端口:" + url.getPort());//url.getPort()获取端口,如果没有设置端口,返回 -1
System.out.println("查询信息:" + url.getQuery());//获取查询详细,若没有返回null
InputStream input;
URLConnection sc=url.openConnection();//获得 URL 的通信连接
input=sc.getInputStream();
byte[] b=new byte[1024];//字节数组
int len;
while((len=input.read(b))!=-1){
System.out.println("页面信息:");
System.out.println(new String(b,0,len));
}
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出信息:

URLConnection
简介
URLConnection是一个抽象类,表示指向URL指定资源的活动连接。>URLConnection有两个不同但相关的用途:
URLConnection可以检查服务器发送的首部,并相应地做出响应。它可以设置客户端请求中使用的首部字段。最后URLConnection可以用POST、PUT和其他HTTP请求方法向服务器发回数据;
URLConnection类是Java的协议处理器机制的一部分;
直接使用URLConnection类的程序遵循以下基本步骤:
*1.构造一个URL对象;
*2.调用这个URL对象的openConnection()获取一个对应该URL的URLConnection对象;
*3.配置这个URLConnection;
*4.读取首部字段;
*5.获得输入流并读取数据;
*6.获得输出流并写入数据;
*7.关闭连接;
下载数据Demo:
public static void getImage() throws IOException {
//URL
URL url = new URL("http://10.129.2.59/C:/Users/lenovo/Desktop/1.jpg");
//获取与服务器连接的对象
URLConnection connection = url.openConnection();
//读取下载的内容 - 获取输入流
InputStream is = connection.getInputStream();
//创建文件保存的位置
FileOutputStream fos = new FileOutputStream("D:/Java learning/java/src/main/java/day14/2.jpg");
byte[]buf = new byte[1024];
int len;
while ((len=is.read(buf))!=-1){
fos.write(buf,0,len);
}
}
URL与URLConnection的最大区别:
1.URLConnection提供了对HTTP首部的访问;
2.URLConnection可以配置发送给服务器的请求参数;
3.URLConnection除了读取服务器数据外,还可以向服务器写入数据;
JAVA HTTP通信
HTTP通信主要有两种方式
1.POST方式:通过HTTP消息实体发送数据给服务器(不会将明文显示在浏览器地址栏),安全性高,数据传输大小没有限制
2.GET方式:通过URL的查询字符串传递给服务器参数,以明文显示在浏览器地址栏,保密性差,最多传输2048个字符。
3.区别:
GET请求并不是一无是处,因为GET请求大多用于查询(读取资源),效率高,POST请求用于注册、登录等安全性较高且向数据库中写入数据的操作;
HTTP的数据传输:
HTTP通过TCP/IP进行数据传输,如果忽略底层的TCP协议的握手和挥手的细节,对于从客户端到服务器的每一个请求和请求的响应,在HTTP1.0有下面几个步骤:
1、默认情况下,客户端在端口80开启与服务器的一个TCP连接,当然也可以指定其他的端口。
2、客户端向服务器发送消息,请求指定路径上的资源。一个HTTP请求包括一个首部,可选项包括一个空行和这次请求的数据。
3、服务器向客户端发送响应。响应以响应码开头,接着是包含元数据的首部,可选项包括一个空行以及所请求的文档数据或者错误信息。
4、服务器关闭TPC连接。
常见的HTTP状态码


简单概括如下:
响应码100-199表示一个提供信息的响应。
响应码200-299表示请求成功。
响应码300-399表示重定向。
响应码400-499表示一个客户端引发的错误。
响应码500-599表示一个服务器引发的错误。
感悟:
发现网络不难学,但是东西太多了,还是要自己下去好好学学,另外在出现错误时一定要有逻辑的分析错误,理性的寻找错误,要动脑子找错误!要不然真的特别浪费时间!!!
网友评论