当前位置: 首页 > 编程笔记 >

基于java URL和URLConnection(详解)

阎知
2023-03-14
本文向大家介绍基于java URL和URLConnection(详解),包括了基于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(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍基于python中staticmethod和classmethod的区别(详解),包括了基于python中staticmethod和classmethod的区别(详解)的使用技巧和注意事项,需要的朋友参考一下 例子 上述类有三个函数,使用如下: 区别 • foo()的调用者必须是类A的一个实例,class_foo()与static_foo()的调用者既可以是类也可以是某个实例 • 参

  • 本文向大家介绍基于IntBuffer类的基本用法(详解),包括了基于IntBuffer类的基本用法(详解)的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上代码 以上这篇基于IntBuffer类的基本用法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Vue基于NUXT的SSR详解,包括了Vue基于NUXT的SSR详解的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Vue基于NUXT的SSR,分享给大家,也给自己留个笔记。 SSR 首先说下 SSR,最近很热的词,意为 Server Side Rendering(服务端渲染),目的是为了解决单页面应用的 SEO 的问题,对于一般网站影响不大,但是对于论坛类,内容类网站来说是致命

  • 本文向大家介绍基于Python Numpy的数组array和矩阵matrix详解,包括了基于Python Numpy的数组array和矩阵matrix详解的使用技巧和注意事项,需要的朋友参考一下 NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。 在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做

  • 本文向大家介绍基于Python的文件类型和字符串详解,包括了基于Python的文件类型和字符串详解的使用技巧和注意事项,需要的朋友参考一下 1. Python的文件类型 1. 源代码--直接由Python解析 这里的1.py就是源代码 执行方式和shell脚本类似: chmod +x 后,./1.py Python 1.py 2. 字节代码 Python源码文件经编译后生成的扩展名为pyc的文件

  • 本文向大家介绍基于js 本地存储(详解),包括了基于js 本地存储(详解)的使用技巧和注意事项,需要的朋友参考一下 在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全) 1、JS中的本地存储: 使用JS向浏览器的某一个位置中存储一些内容,浏览器即使关闭了,存储的信息也不会销毁,当在重新打开浏览器的时候我们依然可以获取到上一次存储的信息 本地存储的方案: 传统: cookie: