java網路程式設計: URL 和 RULConnection
阿新 • • 發佈:2019-02-15
一:URL
URL(Uniform Resource Locator) 統一資源定位符,可以直接使用此類找到網際網路上的資源(如一個簡單的網頁)。
範例1:
package haizhu.com.InetDemo; import java.io.InputStream; import java.net.URL; import java.util.Scanner; public class URLDemo { public static void main(String[] args) throws Exception{ URL url = new URL("http","www.mldnjava.cn",80,"/curriculum.htm"); // 指定操作的URL InputStream input = url.openStream(); // 開啟輸入流,讀取URL內容 Scanner scan = new Scanner(input); // 例項化Scanner 物件 scan.useDelimiter("\n"); // 設定讀取分隔符 while(scan.hasNext()){ // 不斷讀取內容 System.out.println(scan.next()); // 輸出內容 } } }
使用URL 找到指定主機上的 curriculum.htm 頁面資源,並使用Scanner 將頁面中的內容下載下來直接顯示在螢幕上。
二:URLConnection
URLConnection 是封裝訪問遠端網路資源一般方法的類,通過它可以建立於遠端伺服器的連結,檢查遠端資源的一些屬性。
URLConnection 物件可以通過openConnection() 方法取得,下面通過URLConnection 物件取得一個 URL 的基本資訊:
範例2:
package haizhu.com.InetDemo; import java.net.URL; import java.net.URLConnection; public class URLConnectionDemo { public static void main(String[] args) throws Exception{ URL url = new URL("http://www.mldnjava.cn"); // 指定操作的 URL URLConnection urlCon = url.openConnection(); // 簡歷連線 System.out.println("內容大小:"+urlCon.getContentLength()); // 取得內容大小 System.out.println("內容型別:"+urlCon.getContentType()); // 取得內容型別 } }
2.URL和URLConnection類
網路中的URL(Uniform Resource Locator)是統一資源定位符的簡稱。它表示Internet上某一資源的地址。通過URL我們可以訪問Internet上的各種網路資源,比如最常見的WWW,FTP站點。 URL可以被認為是指向網際網路資源的“指標”,通過URL可以獲得網際網路資源相關資訊,包括獲得URL的InputStream物件獲取資源的資訊,以及一個到URL所引用遠端物件的連線URLConnection。 URLConnection物件可以向所代表的URL傳送請求和讀取URL的資源。通常,建立一個和URL的連線,需要如下幾個步驟:
- 建立URL物件,並通過呼叫openConnection方法獲得URLConnection物件;
- 設定URLConnection引數和普通請求屬性;
- 向遠端資源傳送請求;
- 遠端資源變為可用,程式可以訪問遠端資源的頭欄位和通過輸入流來讀取遠端資源返回的資訊。
//1. 向指定URL傳送GET方法的請求
String urlName = url + "?" + param; URL realUrl = new URL(urlName);
//開啟和URL之間的連線
URLConnection conn = realUrl.openConnection();
//設定通用的請求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
//建立實際的連線 conn.connect();
//2. 向指定URL傳送POST方法的請求 URL realUrl = new URL(url);
//開啟和URL之間的連線 URLConnection conn = realUrl.openConnection();
//設定通用的請求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
//傳送POST請求必須設定如下兩行
conn.setDoOutput(true);
conn.setDoInput(true);
//獲取URLConnection物件對應的輸出流
out = new PrintWriter(conn.getOutputStream());
//傳送請求引數
out.print(param);