URL學習筆記

来源:http://www.cnblogs.com/gode/archive/2016/08/27/5812138.html
-Advertisement-
Play Games

不多說,先上代碼,代碼的註釋寫的已經挺詳細的了 首先先瞭解了URL的一些常用的方法,現在我嘗試利用網址讀入內容到控制台列印輸出 很好奇會列印出什麼東西呢 下麵就是列印出來的東西 並不是想象中的會將我寫的博客列印出來,而是列印出了頁面的HTML佈局代碼 而教程中,使用Tomcat伺服器,URL地址指定 ...


不多說,先上代碼,代碼的註釋寫的已經挺詳細的了

 1 //URL:統一資源定位符,一個URL的對象,對應著互聯網上的一個資源。
 2 //我們可以通過URL的對象調用其相應的方法,將此資源讀取(即所謂的“下載”)
 3 public class TestURL {
 4     //看URL下有哪些常用的方法
 5     @Test
 6     public void Testurl() throws MalformedURLException{
 7         //1.創建一個URL的對象
 8         //參數部分可以傳入一個網址的絕對路徑,這裡我傳人的是我寫的一篇博客的地址
 9         URL url = new URL("http://www.cnblogs.com/gode/p/5812013.html");
10         
11         //獲取該URL的協議名
12         System.out.println(url.getProtocol());//http
13         //獲取該URL的主機名
14         System.out.println(url.getHost());//www.cnblogs.com
15         //獲取該URL的埠號
16         System.out.println(url.getPort());//-1
17         //獲取該URL的文件路徑
18         System.out.println(url.getPath());//  /gode/p/5812013.html
19         //獲取該URL的文件名
20         System.out.println(url.getFile());//  /gode/p/5812013.html
21         //獲取該URL在文件中的相對位置
22         System.out.println(url.getRef());//null
23         //獲取該URL的查詢名
24         System.out.println(url.getQuery());//null
25     }


首先先瞭解了URL的一些常用的方法,現在我嘗試利用網址讀入內容到控制台列印輸出

很好奇會列印出什麼東西呢

 1     //如何將服務端的資源讀取進來
 2     @Test
 3     public void Testurl1() throws Exception{
 4         //1.創建一個URL的對象
 5         //參數部分可以傳入一個網址的絕對路徑,這裡我傳人的是我寫的一篇博客的地址
 6         URL url = new URL("http://www.cnblogs.com/gode/p/5812013.html");
 7         
 8         //2.URL讀入的方法是openStream
 9         InputStream is = url.openStream();
10         
11         //3.列印到控制臺上試試
12         byte[] b = new byte[1024];
13         int length;
14         while((length = is.read(b)) != -1){
15             String str = new String(b,0,length);
16             System.out.print(str);//這裡輸出的是頁面佈局的HTML代碼,對應的漢字還有些是亂碼
17         }
18     }

下麵就是列印出來的東西

  1 <!DOCTYPE html>
  2 <html lang="zh-cn">
  3 <head>
  4 <meta charset="utf-8"/>
  5 <title>浣跨敤UDP榪涜鏁版嵁鍙戦?佺殑瀹炰緥涓? - Hello.World! - 鍗氬鍥?</title>
  6 <link type="text/css" rel="stylesheet" href="/bundles/blog-common.css?v=Ugwf7ssw_T-Y4bsdVDPHPhPR9NEESRNHOF-E8IRqEJk1"/>
  7 <link id="MainCss" type="text/css" rel="stylesheet" href="/skins/CodingLife/bundle-CodingLife.css?v=dE43LeVMdRWr6dflRs5MpsAmgg8oyLrU-UvBlmYDLvg1"/>
  8 <link title="RSS" type="application/rss+xml" rel="alternate" href="http://www.cnblogs.com/gode/rss"/>
  9 <link title="RSD" type="application/rsd+xml" rel="EditURI" href="http://www.cnblogs.com/gode/rsd.xml"/>
 10 <link type="application/wlwmanifest+xml" rel="wlwmanifest" href="http://www.cnblogs.com/gode/wlwmanifest.xml"/>
 11 <script src="//common.cnblogs.com/script/jquery.js" type="text/javascript"></script>  
 12 <script type="text/javascript">var currentBlogApp = 'gode', cb_enable_mathjax=false;var isLogined=false;</script>
 13 <script src="/bundles/blog-common.js?v=Q7JqGMCRFJwGRojUTJLkQ6nIu4kUBVwm5mErn4um_MM1" type="text/javascript"></script>
 14 </head>
 15 <body>
 16 <a name="top"></a>
 17 
 18 <!--done-->
 19 <div id="home">
 20 <div id="header">
 21     <div id="blogTitle">
 22     <a id="lnkBlogLogo" href="http://www.cnblogs.com/gode/"><img id="blogLogo" src="/Skins/custom/images/logo.gif" alt="榪斿洖涓婚〉" /></a>            
 23         
 24 <!--done-->
 25 <h1><a id="Header1_HeaderTitle" class="headermaintitle" href="http://www.cnblogs.com/gode/">Hello.World!</a></h1>
 26 <h2></h2>
 27 
 28 
 29 
 30         
 31     </div><!--end: blogTitle 鍗氬鐨勬爣棰樺拰鍓爣棰? -->
 32     <div id="navigator">
 33         
 34 <ul id="navList">
 35 <li><a id="MyLinks1_HomeLink" class="menu" href="http://www.cnblogs.com/">鍗氬鍥?</a></li>
 36 <li><a id="MyLinks1_MyHomeLink" class="menu" href="http://www.cnblogs.com/gode/">棣栭〉</a></li>
 37 <li><a id="MyLinks1_NewPostLink" class="menu" rel="nofollow" href="https://i.cnblogs.com/EditPosts.aspx?opt=1">鏂伴殢絎?</a></li>
 38 <li><a id="MyLinks1_ContactLink" class="menu" rel="nofollow" href="http://msg.cnblogs.com/send/Hello.World%21">鑱旂郴</a></li>
 39 <li><a id="MyLinks1_Syndication" class="menu" href="http://www.cnblogs.com/gode/rss">璁㈤槄</a>
 40 <!--<a id="MyLinks1_XMLLink" class="aHeaderXML" href="http://www.cnblogs.com/gode/rss"><img src="//www.cnblogs.com/images/xml.gif" alt="璁㈤槄" /></a>--></li>
 41 <li><a id="MyLinks1_Admin" class="menu" rel="nofollow" href="https://i.cnblogs.com/">綆$悊</a></li>
 42 </ul>
 43         <div class="blogStats">
 44             
 45             
 46 <span id="stats_post_count">闅忕瑪 - 2&nbsp; </span>
 47 <span id="stats_article_count">鏂囩珷 - 0&nbsp; </span>
 48 <span id="stats-comment_count">璇勮 - 0</span>
 49 
 50             
 51         </div><!--end: blogStats -->
 52     </div><!--end: navigator 鍗氬瀵艱埅鏍? -->
 53 </div><!--end: header 澶撮儴 -->
 54 
 55 <div id="main">
 56     <div id="mainContent">
 57     <div class="forFlow">
 58         
 59 <div id="post_detail">
 60 <!--done-->
 61 <div id="topics">
 62     <div class = "post">
 63         <h1 class = "postTitle">
 64             <a id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/gode/p/5812013.html">浣跨敤UDP榪涜鏁版嵁鍙戦?佺殑瀹炰緥涓?</a>
 65         </h1>
 66         <div class="clear"></div>
 67         <div class="postBody">
 68             <div id="cnblogs_post_body"><p>棣栧厛濡傛灉TCP瀛﹁繃浠ュ悗錛屽啀鐪婾DP榪涜鏁版嵁浼犺緭涔熸槸澶у悓灝忓紓鐨勶紝鍙槸鐢ㄥ埌鐨勭被涓嶅悓</p>
 69 <p>UDP榪涜浼犺緭闇?瑕丏ataSocket鍜孌atapacket綾夥紝Datapacket鍙暟鎹姤錛屾瘡涓?涓暟鎹姤涓嶈兘澶т簬64k錛岄兘璁板綍鐫?鏁版嵁淇℃伅錛屽彂閫佺鐨処P銆佺鍙e彿錛?</p>
 70 <p>浠ュ強瑕佸彂閫佸埌鐨勬帴鏀剁鐨処P銆佺鍙e彿銆?</p>
 71 <p>UDP榪涜浼犺緭鏄皢鏁版嵁鍏ㄩ儴鎵撳寘錛岀劧鍚庝竴璧峰彂榪囧幓錛屽鏄撻?犳垚鏁版嵁涓㈠け錛屼絾閫熷害杈冨揩錛屾瘮濡傝涓嬭澆涓?涓數褰憋紝緙哄け鍑犱睛騫舵病鏈変粈涔堝獎鍝嶏紝浣嗛渶瑕佸揩閫熶笅杞斤紝榪欎釜鏃跺?欏彲浠ラ?夋嫨UDP榪涜浼犺緭錛屾墍璋撳悇鏈夋墍闀匡紝鍏蜂綋閫夋嫨閭g鏂瑰紡榪樻槸瑕佺湅鍏蜂綋闇?瑕併??</p>
 72 <p>鎺ヤ笅鏉ラ檮鍔犱竴涓猆DP榪涜鏂囧瓧浼犺緭錛岀劧鍚庢帴鏀剁鎵撳嵃鍒版帶鍒跺彴涓?</p>
 73 <div class="cnblogs_code">
 74 <pre><span style="color: #008080;"> 1</span> <span style="color: #0000ff;">package</span><span style="color: #000000;"> com.UDP.java;
 75 </span><span style="color: #008080;"> 2</span> 
 76 <span style="color: #008080;"> 3</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.io.IOException;
 77 </span><span style="color: #008080;"> 4</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.DatagramPacket;
 78 </span><span style="color: #008080;"> 5</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.DatagramSocket;
 79 </span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> java.net.InetAddress;
 80 </span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">import</span><span style="color: #000000;"> org.junit.Test;
 81 </span><span style="color: #008080;"> 8</span> 
 82 <span style="color: #008080;"> 9</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> TestUDP {
 83 </span><span style="color: #008080;">10</span>     <span style="color: #008000;">//</span><span style="color: #008000;"> 鍙戦?佺</span>
 84 <span style="color: #008080;">11</span> <span style="color: #000000;">    @Test
 85 </span><span style="color: #008080;">12</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> send() {
 86 </span><span style="color: #008080;">13</span>         DatagramSocket ds = <span style="color: #0000ff;">null</span><span style="color: #000000;">;
 87 </span><span style="color: #008080;">14</span>         <span style="color: #0000ff;">try</span><span style="color: #000000;"> {
 88 </span><span style="color: #008080;">15</span>             ds = <span style="color: #0000ff;">new</span><span style="color: #000000;"> DatagramSocket();
 89 </span><span style="color: #008080;">16</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 鍒涘緩涓?涓暟鎹姤錛屾瘡涓?涓暟鎹姤涓嶈兘澶т簬64k錛岄兘璁板綍鐫?鏁版嵁淇℃伅錛屽彂閫佺鐨処P銆佺鍙e彿錛屼互鍙婅鍙戦?佸埌
 90 </span><span style="color: #008080;">17</span>             <span style="color: #008000;">//</span><span style="color: #008000;"> 鐨勬帴鏀剁鐨処P銆佺鍙e彿銆?</span>
 91 <span style="color: #008080;">18</span>             <span style="color: #0000ff;">byte</span>[] b = "鎴戞槸鍙戦?佺"<span style="color: #000000;">.getBytes();
 92 </span><span style="color: #008080;">19</span>             DatagramPacket pack = <span style="color: #0000ff;">new</span> DatagramPacket(b, 0<span style="color: #000000;">, b.length, 
 93 </span><span style="color: #008080;">20</span>                     InetAddress.getByName("192.168.1.101"), 9090<span style="color: #000000;">);
 94 </span><span style="color: #008080;">21</span> <span style="color: #000000;">            ds.send(pack);
 95 </span><span style="color: #008080;">22</span>         } <span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
 96 </span><span style="color: #008080;">23</span> <span style="color: #000000;">            e.printStackTrace();
 97 </span><span style="color: #008080;">24</span>         } <span style="color: #0000ff;">finally</span><span style="color: #000000;"> {
 98 </span><span style="color: #008080;">25</span>             <span style="color: #0000ff;">if</span> (ds != <span style="color: #0000ff;">null</span><span style="color: #000000;">) {
 99 </span><span style="color: #008080;">26</span> <span style="color: #000000;">                ds.close();
100 </span><span style="color: #008080;">27</span> <span style="color: #000000;">            }
101 </span><span style="color: #008080;">28</span> <span style="color: #000000;">        }
102 </span><span style="color: #008080;">29</span> <span style="color: #000000;">    }
103 </span><span style="color: #008080;">30</span> 
104 <span style="color: #008080;">31</span>     <span style="color: #008000;">//</span><span style="color: #008000;"> 鎺ユ敹絝?</span>
105 <span style="color: #008080;">32</span> <span style="color: #000000;">    @Test
106 </span><span style="color: #008080;">33</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> receive() {
107 </span><span style="color: #008080;">34</span>         DatagramSocket ds = <
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 對戰游戲 要求: 數據連接類: 實體類: namespace ConsoleApplication1 { public class Player { private string name; //玩家姓名 public string Name { get { return name; } set { ...
  • 最前面的話:Smobiler是一個在VS環境中使用.Net語言來開發APP的開發平臺,也許比Xamarin更方便 ...
  • //我的C#是跟著猛哥(劉鐵猛)(算是我的正式老師)《C#語言入門詳解》學習的,微信上猛哥也給我講解了一些不懂得地方,對於我來說簡直是一筆巨額財富,難得良師! 在學習C#的時候,老師講的示例中有一些地方用到了this關鍵字,猛哥在視頻中也略微解釋了一下,並未深講,所以直到學完,我在這一塊依舊有著疑問 ...
  • 背水一戰 Windows 10 之 控制項(文本類): AutoSuggestBox ...
  • (此文章同時發表在本人微信公眾號“dotNET每日精華文章”,歡迎右邊二維碼來關註。) 題記:最近在開發釘釘的微應用,考慮到性能和UI庫的支持,遂採用了React來開發前端。 目前我的項目是基於ABP框架的ASP.NET MVC/WEB API作為後端,AngularJS作為前端。但是發現釘釘官方的... ...
  • 第一次寫博文寫的不好,但希望能幫助大家,有什麼偏頗的地方希望大家多多斧正。在這個問題上困擾了我兩天,這兩天翻來覆去睡不著。一直在想這個問題。廢話不多說下麵進入正題。 1.創建創建web項目,加入SpringMVC的jar,我這裡演示用spring-framework-4.2.3.RELEASE。ja ...
  • 1.引用的Jar 2. BitTransform.java package com.test; public class BitTransform { public static int getUShort(byte[] byteArray) { int value = 0; value += (b... ...
  • 說明:Firemonkey 圖片按鈕(支持三種狀態:MouseOver, MouseDown, MouseUp,可各別指定圖片) 原碼下載:[示例]TestImageButton_圖片按鈕(3態).zip 運行展示: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...