1. 程式人生 > >轉載 通過JAVA語言實現使用URL訪問網路資源

轉載 通過JAVA語言實現使用URL訪問網路資源

1.url描述

url是統一資源定位符(uniform resource locator)的簡稱.它表示網際網路上某一資源的地址.瀏覽器通過給定的url可以找到相應的檔案或其他資源.在某些情況下,url中除ip地址以外的部分可以省略.例如:在瀏覽器位址列輸入java.sun.com,瀏覽器會預設使用http協議及相應的埠號,並使用web伺服器提供的預設的檔案.url的一般例子,如: http://java.sum.com , ftp:192.168.10.233 及http://java.sum.com/javase/downloads/index.jsp.

在java中,使用java.net中的url類可以建立代表網際網路上某一具體資源的url物件.通過此物件,利用相關的方法,可以輕鬆的進行網路資源的存取.

2.1 url類

java.net 包提供url類,用url物件表示url地址.

(1) url類的構造方法

url類提供多種不同的構造方法,用於以不同形式建立url物件.

public url(string spec) throws malformedurlexception

public url(url context, string spec) throws malformedurlexception

public url(string protocol, string host, string file) throws malformedurlexception

public url(string protocol, string host, int port, string file) throws malformedurlexception

其中,引數spec是由協議名,主機名,埠號,檔名組成的字串.引數context是已建立的url物件,引數protocol是協議名,引數host是主機名,引數file是檔名,對數port是埠號.

下面通過各種構造方法建立url物件,分別以不同的方式提供url地址的各部分資訊

url myurl1=new url(“http://www.tju.edu.cn:80/”);

url myurl2=new url(“myurl1”,”support/fap.html”);

url myurl3=new url(“http”,”www.tju.edu.cn”,”index.html”);

url myurl4=new url(“http”,”www.tju.edu.cn”,80,”index.html”);

上面的myurl2地址是由myurl1地址和用相對路徑表示的檔名會成的,代表的url地址是:http://www.tju.edu.cn:80/support/fap.html

(2)獲取url物件的屬性

一個url物件中包括各種屬性,屬性不能被改變,但可以通過下面的方法獲取屬性

public string getprotocol()//獲取url的協議名

public string gethost()//獲取url 的主機名

public int getport()//獲取url的埠號

public string getpath()//獲取url的檔案路徑

public string getfile()//獲取url的檔名

public string getref()//獲取url在檔案中的相對位置

public string getquery()//獲取url的查詢名

2.2 利用url訪問網上資源

一個url物件對應一個網址,,生成url物件後,就可以呼叫url物件的openstream()方法讀取網址中的資訊.openstream()方法的原型如下:

public final inputsream openstream()

呼叫openstream()方法獲取的是一個inputsream輸入流物件,通過read()方法只能從這個輸入流中逐位元組讀取資料,也就是從url網址中逐位元組讀取資訊,為了能方便地從url讀取資訊,通常將原始的inputsream輸入流轉變為其他型別的輸入流,如bufferedreader等,比如讀出網址www.sina.com.cn的主頁內容.

package com.fenley.test;

import java.net.*;

import java.io.*;

public class web {

/**

* @param args

*/

public static void main(string[] args) {

url url=null;

inputstream is=null;

try{

url=new url("http://www.sina.com.cn");

is=url.openstream();

bufferedreader br=new bufferedreader(new inputstreamreader(is));

string line;

while((line=br.readline())!=null)

system.out.println(line);

}catch(exception ex){

ex.printstacktrace();

}finally{

try {

if (is != null)

is.close();

} catch (exception e) {

e.printstacktrace();

}

}

}

}

從以上實現網路資源的存取程式程式碼來看,使用java.net中的url類可以輕鬆實現網路資源的存取.只是要注意:url類的構造方法都丟擲malformedurlexception異常,用於處理創造url物件可能產生的異常.

3. 結束語

上面實現的網路資源的存取只是簡單地使用java.net中的url類實現的過程,但卻很實用,對於開發java在內建的網路能力方面將具有一定的指導的意義.


======================================================
在最後,我邀請大家參加新浪APP,就是新浪免費送大家的一個空間,支援PHP+MySql,免費二級域名,免費域名繫結 這個是我邀請的地址,您通過這個連結註冊即為我的好友,並獲贈雲豆500個,價值5元哦!短網址是http://t.cn/SXOiLh我建立的小站每天訪客已經達到2000+了,每天掛廣告賺50+元哦,呵呵,飯錢不愁了,\(^o^)/