博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络基础 URL
阅读量:4316 次
发布时间:2019-06-06

本文共 2822 字,大约阅读时间需要 9 分钟。

一、用JAVA实现URL 

  在JAVA中,Java.net包里面的类是进行网络编程的,其中java.net.URL类和java.net.URLConection类使编程者方便地利用URL在Internet上进行网络通信。
1、创建URL对象
  URL类有多种形式的构造函数:

package com.my.socket;import java.net.MalformedURLException;import java.net.URL;import java.net.UnknownHostException;public class ScocketTestt {    public static void main(String[] args) throws UnknownHostException, MalformedURLException {            //(1) URL ( String url)        //url代表一个绝对地址,URL对象直接指向这个资源,如:        URL urll1=new URL("http://www.cqwu.edu.cn");        //(2) URL ( URL baseURL , String relativeURL)        //其中,baseURL代表绝对地址,relativeURL代表相对地址。如:        URL urll2 = new URL("http://www.cqwu.edu.cn");        URL lib1 = new URL(urll2 , "library / library.asp");        //(3) URL ( String protocol , String host , String file)        //其中,protocol代表通信协议,host代表主机名,file代表文件名。如:        new URL ("http" , "www.cqwu.edu.cn", "/ test / test.asp");        //(4) URL ( String protocol , String host , int port , String file)        URL lib2 = new URL ("http" , "www.cqwu.edu.cn", 80 , "/ test / test.asp");                                    }}

2、获取URL对象的属性

  getDefaultPort(): 返回默认的端口号。
  getFile(): 获得URL指定资源的完整文件名。
  getHost(): 返回主机名。
  getPath(): 返回指定资源的文件目录和文件名。
  getPort(): 返回端口号,默认为-1。
  getProtocol(): 返回表示URL中协议的字符串对象。
  getRef(): 返回URL中的HTML文档标记,即#号标记。
  getUserInfo: 返回用户信息。
  toString: 返回完整的URL字符串。

url1.getHost();//获取主机        url1.getPort();//如果没有指定端口号,根据协议不同使用默认端口。此时getPort()方法的返回值为 -1        url1.getPath();//获取文件路径        url1.getFile();//文件名,包括文件路径+参数        url1.getRef();//相对路径,就是锚点,即#号后面的内容        url1.getQuery();//查询字符串,即参数

有两种方法可以用来访问Internet。一是利用URL类的openStream()方法;二是使用openConnection()方法创建一个URLConnection类的对象。

其中,方法openStream()与指定的URL建立连接并返回InputStream类的对象,以从这一连接中读取数据。

//使用URL读取网页内容//创建一个URL实例URL url =new URL("http://www.baidu.com");InputStream is = url.openStream();//通过openStream方法获取资源的字节输入流InputStreamReader isr =newInputStreamReader(is,"UTF-8");//将字节输入流转换为字符输入流,如果不指定编码,中文可能会出现乱码BufferedReader br =newBufferedReader(isr);//为字符输入流添加缓冲,提高读取效率String data = br.readLine();//读取数据while(data!=null){System.out.println(data);//输出数据data = br.readerLine();}br.close();isr.colose();is.close();

上例首先创建URL对象url,并在其基础上打开输入流获取InputStreamReader对象,再由此对象创建BufferedReader对象br,从br中读取数据即可得到url所指定的资源文件。

  上面的openStream()方法只能读取网络资源,若要既能读取又能发送数据,则要用到URL类的openConnection()方法来创建一个 URLConnection类的对象,此对象在本地机和URL指定的远程节点建立一条HTTP协议的数据通道,可进行双向数据传输。
  类URLConnection提供了很多设置和获取连接参数的方法,最常用到的是getInputStream()和getOutputStream()方法,如:
  URL sum=new URL("");
  URLConnection suncon=buaa.openConnection();
  sumcon.setDoOutput(true);
  DataInputStream dis=new DataInputStream(suncon.getInputStream());
  PrintStream ps=new PrintStream(suncon.getOutputStream());
  String str=dis.readLine();
  ps.println("来自客户机的信息:.......");

转载于:https://www.cnblogs.com/lukelook/p/11236332.html

你可能感兴趣的文章
FFmpeg 新旧版本编码 API 的区别
查看>>
RecyclerView 源码深入解析——绘制流程、缓存机制、动画等
查看>>
Android 面试题整理总结(一)Java 基础
查看>>
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
VNPY- VnTrader基本使用
查看>>
【NOI 2018】归程(Kruskal重构树)
查看>>
注册用户
查看>>
HDU 4571 SPFA+DP
查看>>
centos 创建以日期为名的文件夹
查看>>
Java Timer触发定时器
查看>>
Page Object设计模式
查看>>
程序的基础知识
查看>>
在VIM中使用GDB调试 – 使用vimgdb
查看>>
python爬虫---从零开始(五)pyQuery库
查看>>
Centos MySQL数据库迁移详细步骤
查看>>
新建 WinCE7.0 下的 Silverlight 工程
查看>>
腾讯的张小龙是一个怎样的人?
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>