基于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(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringSecurity6.x多种登录方式配置小结

    SpringSecurity6.x多种登录方式配置小结

    SpringSecurity6.x变了很多写法,本文就来介绍一下SpringSecurity6.x多种登录方式配置小结,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Spring boot 数据库连接断线重连问题

    Spring boot 数据库连接断线重连问题

    这篇文章主要介绍了Spring boot 数据库连接断线重连问题,需要的朋友可以参考下
    2017-06-06
  • Java并发编程示例(一):线程的创建和执行

    Java并发编程示例(一):线程的创建和执行

    这篇文章主要介绍了Java并发编程示例(一):线程的创建和执行,本文是系列文章的第一篇,需要的朋友可以参考下
    2014-12-12
  • springboot如何实现国际化配置

    springboot如何实现国际化配置

    这篇文章主要介绍了springboot如何实现国际化配置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 详解APP微信支付(java后台_统一下单和回调)

    详解APP微信支付(java后台_统一下单和回调)

    这篇文章主要介绍了APP微信支付(java后台_统一下单和回调),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 关于springboot-starter-undertow和tomcat的区别说明

    关于springboot-starter-undertow和tomcat的区别说明

    这篇文章主要介绍了关于springboot-starter-undertow和tomcat的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 消息队列MQ使用详解

    消息队列MQ使用详解

    消息队列(MQ)是一种基于“先进先出”原则的数据结构,广泛应用于分布式系统中,主要用于应用解耦、异步消息处理和流量削峰,消息队列中间件通过允许生产者发送消息到队列,消费者从队列中拉取消息或订阅消息,实现高效、可扩展和最终一致性的系统架构
    2024-10-10
  • Java之Pattern.compile函数用法详解

    Java之Pattern.compile函数用法详解

    这篇文章主要介绍了Java之Pattern.compile函数用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java SPI用法案例详解

    Java SPI用法案例详解

    这篇文章主要介绍了Java SPI用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java ynchronized重量级锁的核心原理详解

    Java ynchronized重量级锁的核心原理详解

    这篇文章主要为大家详细介绍了Java ynchronized重量级锁的核心原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03

最新评论