http://blog.csdn.net/jserkang/archive/2005/03/13/318623.aspx
接入9588簡訊網關(http協議),9588的iis上的簡訊服務url需要身分識別驗證,
在程式中使用的URL:http://UserName:Password@000.000.000.000/SmbpHttpAgent/
接入java代碼:
URL url = new URL(buf.toString()); System.out.println("****"+buf.toString() );
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
String password = "user:password;
BASE64Encoder base = new BASE64Encoder();
String encodedPassword = base.encode(password.getBytes());
conn.setRequestProperty("Authorization", "Basic " + encodedPassword);
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while(in.readLine()!=null){ out.println(in.readLine()); bool = true; }
接入asp代碼
function SendMessage(mobile,strMessage)
Dim str,url,postmsg
url="http://000.000.000.00/SmbpHttpAgent/Sxxxxxxx
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
Set xmlDOC =Server.CreateObject("MSXML.DOMDocument")
'設定參數及其值
strRequest = url1
objHTTP.Open "POST", postmsg, False,"接入帳號","接入密碼"
'設定這個Content-Type很重要
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'看看狀態值
if objHTTP.Status=200 then
xmlStr = xmlDOC.xml
Response.Write xmlStr
else
Response.Write objHTTP.Status&"<br>"
Response.Write objHTTP.StatusText
end if
end function
John Zukowski
摘要
在上一篇的tip, Java Tip 46, 描述了如何利用Java 程式訪問密碼保護的 URL,通過 Java 1.2 的新的 Authenticator 類。如果你或者你的使用者轉到 Java 1.1 下該怎麼辦呢?基本上,沒有 Java 1.2,你會失掉 Authenticator帶來的好處。但別失望! 這篇文章將展示 Java 1.1 小程式片和應用程式如 何訪問需要輸入使用者名稱稱和密碼的R訪問需要輸入使用者名稱稱和密碼的 URLs.(1250字)
非常感謝 David Wallace Croft,他跟蹤並修複了 Base64Converter 類的原始版本的一個 bug, ?經過修改的類的原始碼在這篇短文中列出。
在上一篇技巧中,我們引入了如下的情境:你使用喜歡的瀏覽器在網上衝浪,並遇到了一個URL 需要代理或HTTP伺服器的授權。在螢幕上出現的是一個標準的對話方塊,必須在其中輸入你的使用者名稱稱和密碼來訪問這個網站。為了更清楚起見,螢幕上的對話方塊如所示。
在 Java 程式中,你將發現一個問題:當你試圖從 InputStream 中讀取和URL相關的資訊時,一個 FileNotFoundException將會拋出。
從 Java 1.2開始,可以利用 Authenticator 類,如上面所提到的,在 Java Tip 46 你已經學到。然而,在比Java 1.2 早的版本
中,在試圖從 URL 中讀取資料之前首先需要知道所訪問的 URL 是否是受密碼保護的。如果 URL 是密碼保護的,必須手動的確認每
個URL 的密碼保護響應,然後才能訪問所需要的內容。密碼保護響應以授權要求屬性的形式出現。這種屬性通過 URLConnection 和?br /> URL相關聯。一旦授權要求被滿足,當到達某個 URL 時,上面的資訊是可以被訪問的。
授權字元有著如下的形式“Authorization: Basic 使用者名稱:密碼,”其中,基本授權欄位以Base64格式編碼。(編碼格式的描述可以
可以在 RFC 1113 中得到。一個RFC是一個“requst for comment”文檔,基本上描述某些Internet 標準,在本例中,#1113 描述
了訊息加密和授權程式,參見下面的 資源 ),為了編碼,可以使用 sun.misc package 中的 BASE64Encoder 類,或者建立自己的類。
?
為了建立這個訪問,只需簡單的確認 URL's URLConnection 是否有“授權”要求屬性。下面的步驟描述了怎樣進行。
步驟1:建立 URL
URL url = new URL (urlString);
步驟2:為specificURL 獲得使用者名稱稱和密碼
步驟3:將它們放入String並用冒號":"分開
String userPassword = theUsername + ":" + thePassword;
步驟4:對字串進行編碼
String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());
步驟5: 通過 URL 建立 URLConnection
URLConnection uc = url.openConnection();
步驟6:為URLConnection 設定“授權”要求屬性
uc.setRequestProperty ("Authorization", "Basic " + encoding);
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/jserkang/archive/2005/03/13/318623.aspx