zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
    

    注:若您觉得这篇文章还不错请点击右下角推荐,您的支持能激发作者更大的写作热情,非常感谢!

  • 相关阅读:
    jQuery 淡入淡出
    (Windows窗体)循环动态绑定根节点及子节点
    C# 语音读取
    js禁用&启用某个按钮
    AWS DescribeDBInstances API 无法查询到 DBInstanceArn 参数
    Python 设置S3文件属性中元数据的Content-Encoding值
    Pyhton 批量重命名 AWS S3 中的文件
    Python 控制(SSM)AWS Systems Manager
    Python 根据AWS EC2设置的标签获取正在运行的instancesId
    python 'wb' 模式写入文件怎么输出回车
  • 原文地址:https://www.cnblogs.com/f-ck-need-u/p/8251619.html
Copyright © 2011-2022 走看看