URL類將URL地址封裝成對象,提供了解析URL地址的方法,如獲取uri部分、host部分、端口等。
URLConnection則是URL對象和Socket連接給結合起來了,使得可以更輕松地獲取發起URL請求的連接套接字。
1.URL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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()等)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/f-ck-need-u/p/8251619.html