URL类用于表示和操作URL,专注地址解析、构造与标准化,不发送请求;可拆解协议、主机等字段,支持相对路径解析和自动编码,通过openConnection()配合URLConnection发起请求,但不可变且功能基础。
URL类用于表示和操作统一资源定位符(Uniform Resource Locator),是Java中解析、构造和访问网络资源地址的基础工具。它不负责发送请求或获取内容,而是专注在地址本身的合法性验证、结构分解与标准化处理上。
URL对象能自动拆解一个字符串地址为协议、主机、端口、路径、查询参数、锚点等标准字段。例如:https://www.example.com:8080/path/to/file?name=java#section1,调用getProtocol()返回"https",getHost()返回"www.example.com",getQuery()返回"name=java",getRef()返回"section1"。
null或默认值(如HTTP默认端口80)"/a/../b"会被转为"/b"
可通过字符串或相对路径方式创建URL实例,并支持相对URL解析。例如:
new URL("https://exam
ple.com")直接构造绝对URLnew URL(base, "api/users")以base为基准解析相对路径,结果为https://example.com/api/users
URLEncoder
URL本身不传输数据,但可调用openConnection()获取URLConnection子类(如HttpURLConnection),进而设置请求头、发送请求、读取响应流。
MalformedURLException
URL类不是万能地址处理器:
URLStreamHandler)