下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、在 Java 中,使用proxy 是通過設(shè)置java 環(huán)境變量來實(shí)現(xiàn)的,也就是JVM 的系統(tǒng)屬性。我們需要設(shè)置三個(gè)屬性,proxySetproxyHost 和 proxyPort 。proxySet 是個(gè) boolean 類型的,可以設(shè)置為true 或者 false, true 代表使用代理服務(wù)器。proxyHost 是代理服務(wù)器的IP 地址proxyPort 是代理服務(wù)器的端口地址。我們有兩種方法設(shè)置這種系統(tǒng)屬性,一種是命令行下運(yùn)行Java 程序的時(shí)候,通過參數(shù)付值一種是在java 源程序中設(shè)置。第一種方法的格式如下:java-DproxySet=true-DproxyHost=myProx
2、ySe-DproxyPort=80MyJavaApp第二種方法,就是直接在源程序中通過系統(tǒng)屬性來寫,如下:importjava.util.Properties;.strProxy="7"strPort="8080"PropertiessystemProperties=System.getProperties;systemProperties.setProperty;systemProperties.setProperty;JDK1.3 以上版本,只要設(shè)置了proxyHost 和 proxyPort 就不用寫proxySet 了。下面是
3、一個(gè)完整的例子:strUrl=""URLurl=newURL;URLConnectionconn=url.openConnection;strProxy="7"strPort="8080"PropertiessystemProperties=System.getProperties;systemProperties.setProperty;systemProperties.setProperty;BufferedReaderrd=newBufferedReader);while)!=null)rd.close;17
4、.5.2使用 ProxySelector選擇代理服務(wù)器前面介紹的直接使用 Proxy 對象可以在打開 URLConnection 或 Socket 時(shí)指定代理服務(wù)器,使用這種方式需要每次打開連接都顯式設(shè)置代理服務(wù)器。如果想讓系統(tǒng)打開連接時(shí)總是具有默認(rèn)的代理服務(wù)器,則可以使用.ProxySelector,它可以它根據(jù)不同的連接使用不同的代理服務(wù)器。系統(tǒng)默認(rèn)的ProxySelector會檢測各種系統(tǒng)屬性和URL協(xié)議,然后決定怎樣連接不同的主機(jī)。當(dāng)然,程序也可以調(diào)用ProxySelector類的 setDefaultI()靜態(tài)方法來設(shè)置默認(rèn)代理服務(wù)器,也可以調(diào)用getDefault()方法獲得系統(tǒng)當(dāng)
5、前默認(rèn)的代理服務(wù)器。程序可以通過System 類來設(shè)置系統(tǒng)的代理服務(wù)器屬性,關(guān)于代理服務(wù)器常用的屬性名有如下三個(gè):xyHost:設(shè)置 HTTP訪問所使用的代理服務(wù)器地址。該屬性名的前綴可以改為https 、 ftp等,分別用于設(shè)置HTTP訪問、安全HTTP訪問和 FTP 訪問所用的代理服務(wù)器地址。xyPort:設(shè)置 HTTP訪問所使用的代理服務(wù)器端口。該屬性名的前綴可以改為https 、 ftp等,分別用于設(shè)置HTTP訪問、安全HTTP訪問和 FTP 訪問所用的代理服務(wù)器端口。http.nonProxyHosts:設(shè)置 HTTP訪問中不需要使用代理服務(wù)器的遠(yuǎn)程主
6、機(jī),可以使用* 通配符,如果有多個(gè)地址,多個(gè)地址用豎線( | )分隔。下面程序示范了通過改變系統(tǒng)屬性來改變默認(rèn)的代理服務(wù)器。程序清單: codes/17/17-5/ ProxySelectorTest.javapublic class ProxySelectorTest/ 測試本地 JVM 的網(wǎng)絡(luò)默認(rèn)配置 public void setLocalProxy()Properties prop = System.getProperties();/ 設(shè)置 HTTP 訪問要使用的代理服務(wù)器的地址 prop.setProperty("xyHost", "10
7、.10.0.96");/ 設(shè)置 HTTP 訪問要使用的代理服務(wù)器的端口 prop.setProperty("xyPort", "8080");/ 設(shè)置 HTTP 訪問不需要通過代理服務(wù)器訪問的主機(jī),/ 可以使用 * 通配符,多個(gè)地址用 | 分隔 prop.setProperty("http.nonProxyHosts", "localhost|10.20.*");/ 設(shè)置安全 HTTP 訪問使用的代理服務(wù)器地址與端口/ 它沒有 https.nonProxyHosts 屬性,它按照 http
8、.nonProxyHosts 中設(shè)置的規(guī)則訪問 prop.setProperty("xyHost", "6"); prop.setProperty("xyPort", "443");/ 設(shè)置 FTP 訪問的代理服務(wù)器的主機(jī)、端口以及不需要使用代理服務(wù)器的主機(jī)prop.setProperty("xyHost", "6");prop.setProperty("xyPo
9、rt", "2121");prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*");/ 設(shè)置 socks 代理服務(wù)器的地址與端口 prop.setProperty("socks.ProxyHost", "6"); prop.setProperty("socks.ProxyPort", "1080");/ 清除 proxy 設(shè)置public void removeLoca
10、lProxy()Properties prop = System.getProperties();/ 清除 HTTP 訪問的代理服務(wù)器設(shè)置 prop.remove("xyHost"); prop.remove("xyPort"); prop.remove("http.nonProxyHosts");/ 清除 HTTPS 訪問的代理服務(wù)器設(shè)置 prop.remove("xyHost"); prop.remove("xyPort")
11、;/ 清除 FTP 訪問的代理服務(wù)器設(shè)置prop.remove("xyHost");prop.remove("xyPort");prop.remove("ftp.nonProxyHosts");/ 清除 SOCKS 的代理服務(wù)器設(shè)置 prop.remove("socksProxyHost"); prop.remove("socksProxyPort");/ 測試 HTTP 訪問public void showHttpProxy()throws MalformedURL
12、Exception , IOExceptionURL url = new URL("");/ 直接打開連接,但系統(tǒng)會調(diào)用剛設(shè)置的HTTP 代理服務(wù)器URLConnection conn = url.openConnection();/Scanner scan = new Scanner(conn.getInputStream();/ 讀取遠(yuǎn)程主機(jī)的內(nèi)容while(scan.hasNextLine()System.out.println(scan.nextLine();public static void main(String args)throws IOException
13、ProxySelectorTest test = new ProxySelectorTest(); test.setLocalProxy();test.showHttpProxy();test.removeLocalProxy();上面程序中三行粗體字代碼設(shè)置Java 打開 HTTP訪問時(shí)的代理服務(wù)器屬性,其中前兩行代碼設(shè)置代理服務(wù)器的地址和端口,第三行代碼設(shè)置該代理HTTP訪問哪些主機(jī)時(shí)不需要使用代理服務(wù)器。上面程序的行代碼處直接打開一個(gè)URLConnection ,但系統(tǒng)會為打開該URLConnection 時(shí)使用代理服務(wù)器。運(yùn)行上面程序,將會看到程序長時(shí)間等待,因?yàn)?192.168.0.
14、96 通常并不是有效的代理服務(wù)器(當(dāng)然,如果讀者運(yùn)行的機(jī)器恰好可以使用地址為 6 的代理服務(wù)器又另當(dāng)別論)。系統(tǒng)提供了默認(rèn)的ProxySelector子類作為代理選擇器,開發(fā)者可以實(shí)現(xiàn)自己的代理選擇器,程序可以通過繼承ProxySelector來實(shí)現(xiàn)自己的代理選擇器。繼承ProxySelector需要重寫兩個(gè)方法:List<Proxy> select(URI uri):實(shí)現(xiàn)該方法讓代理選擇器根據(jù)不同的URI 來使用不同的代理服務(wù)器,該方法就是代理選擇器管理網(wǎng)絡(luò)連接使用代理服務(wù)器的關(guān)鍵。connectFailed(URI uri, SocketAddress s
15、a, IOException ioe):當(dāng)系統(tǒng)通過默認(rèn)的代理服務(wù)器建立連接失敗后,代理選擇器將會自動調(diào)用該方法。通過重寫該方法可以對連接代理服務(wù)器失敗的情形進(jìn)行處理。系統(tǒng)默認(rèn)的代理服務(wù)器選擇器也重寫了 connectFailed 方法,它重寫該方法的處理策略是:當(dāng)系統(tǒng)設(shè)置的代理服務(wù)器失敗時(shí),默認(rèn)代理選擇器將會采用直連的方式連接遠(yuǎn)程資源,所以當(dāng)運(yùn)行上面程序等待了足夠長時(shí)間時(shí),程序依然可以打印出該遠(yuǎn)程資源的所有內(nèi)容。When you are old and grey and full of sleep,And nodding by the fire, take down this book,And
16、 slowly read, and dream of the soft lookYour eyes had once, and of their shadows deep;How many loved your moments of glad grace,And loved your beauty with love false or true,But one man loved the pilgrim soul in you,And loved the sorrows of your changing face;And bending down beside the glowing bars
17、,Murmur, a little sadly, how love fledAnd paced upon the mountains overheadAnd hid his face amid a crowd of stars.The furthest distance in the worldIs not between life and deathBut when I stand in front of youYet you don't know thatI love you.The furthest distance in the worldIs not when I stand in front of youYet you can't see my loveBut when undoubtedly knowing the love from bothYet cannot be together.The furthest distance in the worldIs not being
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《會計(jì)從業(yè)總賬管理》課件
- 《廣場規(guī)劃設(shè)計(jì)》課件
- 寒假自習(xí)課 25春初中道德與法治八年級下冊教學(xué)課件 第三單元 第六課 第4課時(shí) 國家監(jiān)察機(jī)關(guān)
- 短信營銷合同三篇
- 農(nóng)學(xué)啟示錄模板
- 理發(fā)店前臺接待總結(jié)
- 兒科護(hù)士的工作心得
- 探索化學(xué)反應(yīng)奧秘
- 收銀員的勞動合同三篇
- 營銷策略總結(jié)
- DB21-T 2931-2018羊肚菌日光溫室栽培技術(shù)規(guī)程
- 貴州省黔東南州2023-2024學(xué)年九年級上學(xué)期期末文化水平測試化學(xué)試卷
- 《空調(diào)零部件介紹》課件
- 2024年度醫(yī)院內(nèi)分泌與代謝科述職報(bào)告課件
- 手術(shù)室無菌操作流程
- 農(nóng)業(yè)機(jī)械控制系統(tǒng)硬件在環(huán)測試規(guī)范
- 翁潭電站大王山輸水隧洞施工控制網(wǎng)設(shè)計(jì)說明書
- 隆胸術(shù)培訓(xùn)課件
- 鋼筋焊接培訓(xùn)課件
- 行政內(nèi)勤培訓(xùn)課件
- 化纖企業(yè)(化學(xué)纖維紡織企業(yè))安全生產(chǎn)操作規(guī)程
評論
0/150
提交評論