基于java URL和URLConnection(详解)
时间:2021-01-10 11:07:05|栏目:JAVA代码|点击: 次
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组件commons-fileupload文件上传示例
栏 目:JAVA代码
本文标题:基于java URL和URLConnection(详解)
本文地址:http://www.codeinn.net/misctech/43293.html
阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机