URL与URLConnection怎么在Java项目中使用

  

URL与URLConnection怎么在Java项目中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>什么是URL

<李>

=统一资源标识符(URI中文释义为统一资源标志符

<李>

URL=统一资源定位器、中文释义为统一资源定位符

<李>

瓮=统一资源名称、中文释义为统一资源名称

它们之间的关系如下图所示:

 URL与URLConnection怎么在Java项目中使用“> </p> <p>这图啥意思啊,怎么办呢?张小敬有问题就去问葛佬,咱不会就去问“维基百科”啊。</p> <p> URI可以分为URL和缸,或者是URL和骨灰盒的结合体(同时具备定位器和名称).URN就好像一个人的名字,URL就像一个人的地址。换句话说:瓮确定了身份,URL提供了找到它的方式。</p> <p>概念清晰了吧? URI是一个纯粹的句法结构,用于指定标识网络资源的字符串的各个不同部分.URL是URI的一个特例,包含了定位网络资源的足够多的信息.URI是统一资源标识符,而URL是统一资源定位符.URL是URI的一种,比如:http://www.itmind.net/5皇撬械腢RI都是URL,因为URI可能包括一个子集,即统一资源名称(URN,命名了资源但不指定如何定位资源),比如说:mailto: qing_gee@163.com。</p> <p>吧啦吧啦说这么多挺累的,来一发实例吧,用于获取URL的主机名和端口号。</p> <pre类= URL  URL =, new  URL (“http://www.itmind.net/category/payment-selection/zhishixingqiu-jingxuan/");      System.out.println(“主持人:,“,+,url.getHost ());   System.out.println(“端口:“,+,url.getPort ());   System.out.println (“uri_path:,“, +, url.getPath ());//,输出//,主持人:www.itmind.net//,端口:1//,uri_path:/类别/付款选择/zhishixingqiu-jingxuan/

1)创建java.net.URL对象的方法非常简单,只需要一行代码。

URL  URL =, new  URL (URL地址),

URL对象是不可变的,因为URL类是最终的类型的,这样的好处就是保证它是“线程安全“的。

2)有了java.net.URL对象后,就可以获取URL相关的主机名,端口,路径等等。

url.getHost ()   url.getPort ()   url.getPath ()

<强> 02,什么是URLConnection

URLConnection是一个抽象类,代表应用程序和URL之间的通信链接。它的实例可用于读取和写入此URL引用的资源。该类提供了比套接字类更易于使用,更高级的网络连接抽象。

怎么获取URLConnection对象呢?通过URL对象的openConnection()方法,示例如下。

URL  URL =, new  URL (“http://www.itmind.net");   URLConnection  connection =, url.openConnection ();

如果URL协议为HTTP的话,返回的连接为URLConnection的子类HttpURLConnection。

有了URLConnection对象后,可以通过getInputStream()返回一个InputStream,由此读取URL所引用的资源数据(如果读取ASCII文本则为ASCII;如果读取HTML文件则为原始HTML,如果读取图像文件则为二进制图片数据等)。

我们来尝试读取一下小白学堂首页的内容,代码示例如下。

URL  URL =, new  URL (“http://www.itmind.net");   URLConnection  connection =, url.openConnection ();      try  (InputStream =拷贝,connection.getInputStream ();), {      ,ByteArrayOutputStream  output =, new  ByteArrayOutputStream ();   ,byte [], buffer =, new 字节[1024];   ,int  len =, 1;   ,while  ((len =, in.read(缓冲)),!=,1),{   ,output.write(缓冲区,,0,,len);   ,}      ,System.out.println (new 字符串(output.toByteArray ()));      },catch  (IOException  e), {   ,e.printStackTrace ();   }

可以使用try-with-resource获取InputStream,该类实现了AutoCloseable接口,可以在内容读取完毕后自动关闭输入流。

打印的内容如下图所示(部分):

 URL与URLConnection怎么在Java项目中使用“>,</p> <p>如果你想读取某个URL的内容,上述方法是一个不错的方案,赶快去试试吧! </p> <p> <强> 03、URL和URLConnection的不同</强> <br/> </p> <p> URL和URLConnection最大的不同在于:</p> <ul类= <李>

URLConnection提供了对HTTP头部的访问;

<李>

URLConnection可以配置发送给某个URL的请求参数;

URL与URLConnection怎么在Java项目中使用