六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用 Java 連接處于proxy(or 防火墻)之外的HTTP服務(wù)器

[摘要]我到sun站點(diǎn)上,發(fā)現(xiàn)他們的java Applet聊天室能夠突破proxy,我在公司的局域網(wǎng)可以使用的,而一般的java程序是不能夠的。大家可以去分析一下他們的程序本技巧將向您講述如何編寫可通過代理...
我到sun站點(diǎn)上,發(fā)現(xiàn)他們的java Applet聊天室能夠突破proxy,
我在公司的局域網(wǎng)可以使用的,而一般的java程序是不能夠的。
大家可以去分析一下他們的程序


本技巧將向您講述如何編寫可通過代理訪問因特網(wǎng)上的 Web 服務(wù)器的 Java 應(yīng)用程序。在 Java 應(yīng)用程序中加入代理支持只需額外編寫幾行代碼,且不依賴任何安全性“漏洞”。
幾乎所有的公司都十分關(guān)注保護(hù)自己的內(nèi)部網(wǎng)絡(luò),以防黑客及入竊者。一種常見的安全措施是完全斷開與因特網(wǎng)的連接。如果黑客們不能連接到您的任何一臺(tái)機(jī)器,他們就不能非法進(jìn)入您的系統(tǒng)。這種策略產(chǎn)生的不利副作用是,內(nèi)部用戶無法訪問外部的因特網(wǎng)服務(wù)器,如 Yahoo 或 JavaWorld。為了解決這一問題,網(wǎng)絡(luò)管理員通常安裝“代理服務(wù)器”。實(shí)際上,代理是安裝于因特網(wǎng)和內(nèi)部網(wǎng)之間的一種服務(wù),用來管理這兩個(gè)領(lǐng)域之間的連接。代理有助于減少安全性的外部威脅,同時(shí)還允許內(nèi)部用戶訪問因特網(wǎng)服務(wù)。盡管 Java 使得編寫因特網(wǎng)客戶機(jī)不再困難,但是如果客戶機(jī)不能通過代理,則它們毫無用處。幸運(yùn)的是,Java 使得使用代理支持不再困難 -- 如果您知道密訣,這就是事實(shí)。
將 Java 和代理結(jié)合起來的秘訣即在 Java 運(yùn)行時(shí)激活特定的系統(tǒng)屬性。這些屬性未被寫入正式文件,只是作為 Java 傳說的一部分在 Java 編程人員中秘傳。為了支持代理,Java 應(yīng)用程序不僅需要指定代理本身的信息,而且需要指定用于認(rèn)證的用戶信息。在開始使用網(wǎng)際協(xié)議之前,您需要在程序中添加以下幾行代碼:

System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "myProxyMachineName" );
System.getProperties().put( "proxyPort", "85" );


上面的第一行通知 Java 您要通過代理進(jìn)行連接,第二行指定代理所在的機(jī)器,第三行指定代理監(jiān)聽的端口。有些代理在授權(quán)用戶訪問因特網(wǎng)之前,要求用戶輸入用戶名和口令。如果您使用位于防火墻之內(nèi)的 Web 瀏覽器,您就可能碰到過這種情況。以下是執(zhí)行認(rèn)證的方法:

URLConnection connection = url.openConnection();
String password = "username:password";
String encodedPassword = base64Encode( password );
connection.setRequestProperty( "Proxy-Authorization", encodedPassword );


這段代碼的思想是,您必須調(diào)整 HTTP 標(biāo)頭以發(fā)出用戶信息。這是通過調(diào)用 setRequestProperty() 來實(shí)現(xiàn)的。這種方法允許您在發(fā)出請(qǐng)求之前處理 HTTP 標(biāo)頭。HTTP 要求用 base64 對(duì)用戶名和口令進(jìn)行編碼。幸運(yùn)的是,有一組公用域 API,它們將代您執(zhí)行編碼(請(qǐng)參閱參考資源部分)。

如您所見,在 Java 應(yīng)用程序中加入代理支持并不需要做多少工作。有了現(xiàn)在的知識(shí),再做一點(diǎn)研究(您必須查明您的代理是如何處理您感興趣的協(xié)議以及如何進(jìn)行用戶認(rèn)證的),您就能用其他協(xié)議實(shí)現(xiàn)代理。

FTP 代理
Scott D. Taylor 提出這個(gè)秘訣來處理 FTP 協(xié)議代理:

defaultProperties.put( "ftpProxySet", "true" );
defaultProperties.put( "ftpProxyHost", "proxy-host-name" );
defaultProperties.put( "ftpProxyPort", "85" );


接下來您便可以通過以下代碼使用 "ftp" 協(xié)議訪問文件 URL:

URL url = new URL("ftp://ftp.netscape.com/pub/navigator/3.04/windows/readme.txt" );


如果有人有使用其他網(wǎng)際協(xié)議代理的例子,我很想看看。

注意:代碼示例 (Example.java) 僅在 JDK 1.1.4 下測(cè)試過。


后續(xù)技巧!
來自 Marla Bonar:


對(duì)于仍在使用 JDK 1.1.7(配合 WebSphere 3.0)的開發(fā)人員而言,將 proxyHost 和 proxyPort 設(shè)為系統(tǒng)屬性不起作用;conn.getInputStream() 或者返回連接超時(shí),或者是找不到主機(jī)路徑。但是,我使用接受 Host 和 Port 為參數(shù)的 URL 構(gòu)造函數(shù)解決了這一問題(使用我的代理主機(jī)和端口):

public URL(String protocol, String host, int port, String file).

來自 Dylan Walsh:


借助用戶名和口令進(jìn)行認(rèn)證的方法不起作用。應(yīng)將 "Basic " 置于認(rèn)證字符串的開頭;例如:

String encodedPassword = base64Encode( password );

應(yīng)該是:

String encodedPassword = "Basic " + base64Encode( password );

您也不必用一個(gè)單獨(dú)的程序來進(jìn)行 64 位編碼。您可以使用 sun.misc.BASE64Encoder() 類。下面是完成這兩處改動(dòng)之后的代碼:

System.getProperties().put("proxySet", "true");
System.getProperties().put("proxyHost", proxyHost);
System.getProperties().put("proxyPort", proxyPort);
String authString = "userid:password";
String auth = "Basic " + new sun.misc.BASE64Encoder
().encode(authString.getBytes());
URL url = new URL("http://java.sun.com/");
URLConnection conn = url.openConnection();
conn.setRequestProperty("Proxy-Authorization", auth);


來自 Marcel Oerlemans:


下面是使用 socks 4 代理服務(wù)器的方法:

System.getProperty("socksProxySet", true);
System.getProperty("socksProxyHost", proxyHostName);
System.getProperty("socksProxyPort", proxyPort);
Usually the proxyPort for Socks 4 is port 1080


接下來您就可以用 Socks 4 進(jìn)行連接了。


主站蜘蛛池模板: 亚洲我不卡 | 亚洲国产高清视频在线观看 | 在线观看h视频播放高清 | 亚洲国产精久久久久久久 | 中文字幕乱码一二三四区 | 亚洲成人午夜影院 | 手机看片91 | 视频在线免费高清 | 青青草视频黄色 | 天天干夜夜欢 | 色播亚洲 | 四虎国产免费 | 日韩a一级欧美一级在线播放 | 青青草久热精品视频在线观看 | 武则天一级淫片免费看 | 亚洲主播自拍 | 最近2019中文字幕大全视频一页 | 天天做天天爱天天爽综合区 | 亚洲欧洲精品国产二码 | 青青草狠狠操 | 亚洲最新永久观看在线 | 五月天婷婷网站 | 四虎成人精品免费影院 | 青青草国产精品久久 | 日韩三级欧美 | 婷婷97狠狠的狠狠的爱 | 日韩欧美中文字幕一区 | 亚洲网站免费观看 | 热re99久久国产精品 | 亚洲国产成人久久精品影视 | 亚欧免费视频 | 日日拍夜夜嗷嗷叫狠狠 | 天堂资源站 | 日本高清在线一区 | 亚洲欧美婷婷 | 亚洲国产亚洲综合在线尤物 | 亚洲第一黄色网址 | 亚洲高清在线视频 | 午夜视频免费看 | 亚洲 日本 欧美 | 亚洲免费在线观看视频 |