日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

urlconnection java_Java 网络编程:必知必会的 URL 和 URLConnection

發布時間:2025/3/15 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 urlconnection java_Java 网络编程:必知必会的 URL 和 URLConnection 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java.net.URL 類將 URL 地址進行了封裝,并提供了解析 URL 地址的基本方法,比如獲取 URL 的主機名和端口號。java.net.URLConnection 則代表了應用程序和 URL 之間的通信鏈接,可用于讀取和寫入此 URL 引用的資源。

URLConnection 看起來只是比 URL 多了一個 Connection,它們之間的關系也僅限于此嗎?

01、什么是 URL

為了搞清楚什么是 URL,需要引入另外兩個概念 URI 和 URN。

什么鬼,URL 都沒搞清楚,又來兩個搞不清楚的?別擔心,我能像變了魔法一樣讓大家把三個都搞清楚。

URI = Universal Resource Identifier,中文釋義為統一資源標志符

URL = Universal Resource Locator,中文釋義為統一資源定位符

URN = Universal Resource Name,中文釋義為統一資源名稱

它們之間的關系如下圖所示:

這圖啥意思啊,怎么辦呢?張小敬有問題就去問葛佬,咱不會就去問“維基百科”啊。

URI 可以分為 URL 和 URN,或者是 URL 和 URN 的結合體(同時具備 Locator 和 Name)。URN 就好像一個人的名字,URL 就像一個人的地址。換句話說:URN 確定了身份,URL 提供了找到它的方式。

概念清晰了吧?URI 是一個純粹的句法結構,用于指定標識 Web 資源的字符串的各個不同部分。URL 是 URI 的一個特例,包含了定位 Web 資源的足夠多的信息。URI 是統一資源標識符,而 URL 是統一資源定位符。URL 是 URI 的一種,比如:http://www.itmind.net/。但不是所有的 URI 都是 URL,因為 URI 可能包括一個子集,即統一資源名稱 (URN,命名了資源但不指定如何定位資源),比如說:mailto:qing_gee@163.com。

吧啦吧啦說這么多挺累的,來一發實例吧,用于獲取 URL 的主機名和端口號。

URL?url?=?new?URL("http://www.itmind.net/category/payment-selection/zhishixingqiu-jingxuan/");

System.out.println("host:?"?+?url.getHost());

System.out.println("port:?"?+?url.getPort());

System.out.println("uri_path:?"?+?url.getPath());

//?輸出

//?host:?www.itmind.net

//?port:?-1

//?uri_path:?/category/payment-selection/zhishixingqiu-jingxuan/

1)創建 java.net.URL 對象的方法非常簡單,只需要一行代碼。

URL?url?=?new?URL(URL地址);

URL 對象是不可變的,因為 URL 類是 final 類型的,這樣的好處就是保證它是"線程安全"的。

2)有了 java.net.URL 對象后,就可以獲取 URL 相關的主機名、端口、路徑等等。

url.getHost()

url.getPort()

url.getPath()

02、什么是 URLConnection

URLConnection 是一個抽象類,代表應用程序和 URL 之間的通信鏈接。它的實例可用于讀取和寫入此 URL 引用的資源。該類提供了比 Socket 類更易于使用、更高級的網絡連接抽象。

怎么獲取 URLConnection 對象呢?通過 URL 對象的 openConnection() 方法,示例如下。

URL?url?=?new?URL("http://www.itmind.net");

URLConnection?connection?=?url.openConnection();

如果 URL 協議為 HTTP 的話,返回的連接為 URLConnection 的子類 HttpURLConnection。

有了 URLConnection 對象后,可以通過 getInputStream() 返回一個 InputStream,由此讀取 URL 所引用的資源數據(如果讀取 ASCII 文本則為 ASCII;如果讀取 HTML 文件則為原始 HTML,如果讀取圖像文件則為二進制圖片數據等)。

我們來嘗試讀取一下小白學堂首頁的內容,代碼示例如下。

URL?url?=?new?URL("http://www.itmind.net");

URLConnection?connection?=?url.openConnection();

try?(InputStream?in?=?connection.getInputStream();)?{

ByteArrayOutputStream?output?=?new?ByteArrayOutputStream();

byte[]?buffer?=?new?byte[1024];

int?len?=?-1;

while?((len?=?in.read(buffer))?!=?-1)?{

output.write(buffer,?0,?len);

}

System.out.println(new?String(output.toByteArray()));

}?catch?(IOException?e)?{

e.printStackTrace();

}

可以使用 try-with-resource 獲取 InputStream,該類實現了 AutoCloseable 接口,可以在內容讀取完畢后自動關閉輸入流。

打印的內容如下圖所示(部分):

如果你想讀取某個 URL 的內容,上述方法是一個不錯的方案,趕快去試試吧!

03、URL 和 URLConnection 的不同

URL 和 URLConnection 最大的不同在于:

URLConnection 提供了對 HTTP 頭部的訪問;

URLConnection 可以配置發送給某個 URL 的請求參數;

URLConnection 不僅可以讀取 URL 定位的資源,還可以向其寫入數據。

獲取 HTTP 頭部的方法有以下一些:

getContentType,返回 Content-type 頭字段的值,即數據的 MIME 內容類型。若類型不可用,則返回 null。如果內容類型是文本,則 Content-type 首部可能會包含一個標識內容編碼方式的字符集,例如:Content-type:text/html; charset=UTF-8

getContentLength(),返回 Content-length 頭字段的值,即內容的字節數。

getContentEncoding(),返回 Content-encoding 頭字段的值,即內容的編碼方式(不同于字符編碼方式),例如:x-gzip。

getDate(),返回 date 頭字段的值,即請求的發送時間。

getExpiration(),返回 expires(過期時間) 頭字段的值。如果返回 0,表示不過期,永遠緩存。

getLastModified(),返回 last-modified(上次修改日期) 頭字段的值。

代碼示例如下。

URL?url?=?new?URL("http://www.itmind.net");

URLConnection?connection?=?url.openConnection();

System.out.println(connection.getContentType());

System.out.println(connection.getContentLength());

System.out.println(connection.getContentEncoding());

System.out.println(connection.getDate());

System.out.println(connection.getExpiration());

System.out.println(connection.getLastModified());

//?輸出

//?text/html;?charset=UTF-8

//?-1

//?null

//?1566886980000

//?0

//?0

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的urlconnection java_Java 网络编程:必知必会的 URL 和 URLConnection的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩福利视频一区 | 国产在线中文字幕 | 国产精品视频1区 | 少妇献身老头系列 | 国产成人一区二区三区影院在线 | 麻豆91在线播放 | 日本呦呦 | 亚洲三级电影 | 修女也疯狂3免费观看完整版 | 欧美老熟妇一区二区三区 | 在线观看污污网站 | 色污网站 | 在线观看黄色免费网站 | 五月色综合| 国产精品第100页 | 中文字幕一区二区三区人妻 | 六月婷婷在线 | avwww.| 亚洲天堂av片| 成人做爰视频www | 亚洲女人久久久 | 日日夜夜天天 | av黄在线| 天天干天天色 | 这里只有精品久久 | 特级丰满少妇一级aaaa爱毛片 | 超能一家人电影免费喜剧在线观看 | 国产成人综合av | 琪琪电影午夜理论片八戒八戒 | 久久人体视频 | 久久青草热 | 国产在线视频一区二区三区 | 中国一级特黄毛片大片 | 自拍偷拍福利视频 | 海角国产乱辈乱精品视频 | 狠狠躁夜夜躁人人爽天天高潮 | 精品成人中文无码专区 | 四川丰满少妇被弄到高潮 | 青青草视频污 | 大屁股白浆一区二区 | 精品乱码一区二区三四区视频 | 国产a久久 | 青青草十七色 | 日韩精品中文字幕一区 | 在线视频久 | 好吊操视频这里只有精品 | 青青草欧美 | 成人免费影视网站 | 国外亚洲成av人片在线观看 | 污网站免费在线 | 国产女人18水真多18精品一级做 | www夜插内射视频网站 | 韩国一区二区在线播放 | 一道本久在线中文字幕 | 久久久精品久 | 四虎永久在线精品免费一区二区 | 欧美无遮挡高潮床戏 | 亚洲区综合 | 免费啪视频在线观看 | 欧洲精品久久一区二区 | 好男人视频www| 少妇一级淫片免费放 | 精品人妻一区二区三区换脸明星 | 一道本av在线 | 五月婷婷在线播放 | 中日韩黄色大片 | 久久久久久国产免费a片 | 91免费视频播放 | 日韩激情久久 | 91亚洲国产成人精品一区二三 | 国产亚洲精品成人无码精品网站 | 一级视频在线 | 日本在线观看www | 亚洲小说区图片区都市 | 久久久久亚洲av成人毛片韩 | 日韩国产成人无码av毛片 | av噜噜噜 | 户外露出一区二区三区 | 永久精品 | 男人操女人逼逼视频 | 90岁肥老奶奶毛毛外套 | 激情视频网址 | 婷婷色中文网 | 女人高潮被爽到呻吟在线观看 | 奇米av在线 | 免费麻豆av | 欧美自拍一区 | 亚洲4438 | 免费插插视频 | 91超碰在线免费观看 | 免费看国产曰批40分钟粉红裤头 | 关之琳三级全黄做爰在线观看 | 少妇视频网 | 欧美成人免费观看视频 | 国产成人av一区二区三区 | h片在线观看视频 | 中文字幕电影av | 人人射视频 | 丰满多毛的大隂户视频 |