基于java URL和URLConnection(详解)

 更新时间:2018年01月18日 08:44:00   作者:骏马金龙  
下面小编就为大家分享一篇基于java URL和URLConnection(详解),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

URL类将URL地址封装成对象,提供了解析URL地址的方法,如获取uri部分、host部分、端口等。

URLConnection则是URL对象和Socket连接给结合起来了,使得可以更轻松地获取发起URL请求的连接套接字。

1.URL

import java.net.MalformedURLException;
import java.net.URL;
public class URLDemo {
  public static void main(String[] args) throws MalformedURLException {
    URL url = new URL("http://192.168.0.124:8080/webapp/index.html?name=lisi");
    int port = url.getPort();
    String host = url.getHost();
    String uri_path = url.getPath();
    String request_file = url.getFile();
    String query = url.getQuery();
    System.out.println("host: "+ host);
    System.out.println("port: "+ port);
    System.out.println("uri_path: "+ uri_path);
    System.out.println("request_file: "+ request_file);
    System.out.println("query: "+ query);
  }
}

2.URLConnection

通过URL的openConnection()方法可以获取URLConnection对象,这个对象是面对这个URL的连接。

也就是说,这个对象其实是一个已连接套接字,它不仅具有解析http响应报文的功能,还具有套接字的相关功能(例如获取输入流、输出流等)。

仅就解析对象来说,URL对象解析的是URL地址,可以看作是解析http请求报文(如getPort(),getFile()等),而URLConnection则解析的是http响应报文(如getLastModified(),getHeaderFields()等)。

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class URLConnectionDemo {
  public static void main(String[] args) {
    try {
      URL url = new URL("https://www.baidu.com/");
      URLConnection urlc = url.openConnection();
      System.out.println(urlc.getURL()); //解析http响应报文
      InputStream is = urlc.getInputStream();
      byte[] buf = new byte[1024];
      int len = 0;
      while((len=is.read(buf))!=-1) {
        System.out.println(new String(buf,0,len));
      }
    } catch (MalformedURLException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

以上这篇基于java URL和URLConnection(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java中接口(interface)及使用方法示例

    java中接口(interface)及使用方法示例

    这篇文章主要介绍了java中接口(interface)及使用方法示例,涉及接口定义的简单介绍以及Java语言代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • Mybatis-plus sql注入及防止sql注入详解

    Mybatis-plus sql注入及防止sql注入详解

    mybatis-plus提供了许多默认单表 CRUD 语句,对于其他SQL情况爱莫能助,下面这篇文章主要给大家介绍了关于Mybatis-plus sql注入及防止sql注入的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Java中Object转换为List类型的实现方法

    Java中Object转换为List类型的实现方法

    这篇文章主要介绍了Java中Object转换为List类型的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Spring中的@Repository注解源码详解

    Spring中的@Repository注解源码详解

    这篇文章主要介绍了Spring中的@Repository注解详解,@Repository注解修饰哪个类,则表明这个类具有对对象进行增删改查的功能,而且@Repository是@Component注解的一个派生品,所以被@Repository注解的类可以自动的被@ComponentScan通过路径扫描给找到,需要的朋友可以参考下
    2023-10-10
  • java中Statement 与 PreparedStatement接口之间的关系和区别

    java中Statement 与 PreparedStatement接口之间的关系和区别

    这篇文章主要介绍了java中Statement 与 PreparedStatement接口之间的关系和区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • spring-core组件详解——PropertyResolver属性解决器

    spring-core组件详解——PropertyResolver属性解决器

    这篇文章主要介绍了spring-core组件详解——PropertyResolver属性解决器,需要的朋友可以参考下
    2016-05-05
  • java 抓取网页内容实现代码

    java 抓取网页内容实现代码

    这篇文章主要介绍了java 抓取网页内容实现代码,需要的朋友可以参考下
    2014-02-02
  • Springboot框架整合添加redis缓存功能

    Springboot框架整合添加redis缓存功能

    缓存就是一个存储器,在技术选型中,常用 Redis 作为缓存数据库。缓存主要是在获取资源方便性能优化的关键方面。Redis 是一个高性能的 key-value 数据库,接下来通过本文给大家介绍Springboot框架整合添加redis缓存功能,感兴趣的朋友一起看看吧
    2021-11-11
  • Java Thread多线程开发中Object类详细讲解

    Java Thread多线程开发中Object类详细讲解

    这篇文章主要介绍了Java Thread多线程开发中Object类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-03-03
  • MyBatis快速入门

    MyBatis快速入门

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。想要学好它,那就要从MyBatis基础知识学起,下面跟着小编一起来看下吧
    2017-03-03

最新评论