2015-10-04 65 views
1

我想使用此代碼從數據庫中刪除用戶:似乎方法.connect()不運行一些測試工作之前

URL url = new URL("someurl/[email protected]"); 
HttpURLConnection huc = (HttpURLConnection)url.openConnection(); 
String userPassword = "is:IS!"; 
String encoding = new sun.misc.BASE64Encoder().encode(userPassword.getBytes()); 
huc.setRequestMethod("GET"); 
huc.setRequestProperty("Authorization", "Basic " + encoding); 
huc.connect(); 

它不爲我工作(user001是仍然在數據庫中呈現)。但是,如果我使用.getResponseCode()而不是.connect(),所有工作都很好。爲什麼?

回答

1

sun.net.www.protocol.http.HttpURLConnection實現HttpURLConnection類的調用connect()的本身實際上並沒有發送請求(包括身份驗證,重新辦理指導等)。這需要調用getInputStream(),可能會稍後。

對getResponseCode的調用如果尚未被調用,則調用getInputStream。

2

因爲當你調用

huc.connect(); 

你是不是實際調用的URL。你只是打開連接到服務器。並且通常你不應該調用這個方法的原因是,當你調用像

getInputStream(), getResponseCode(), or getResponseMessage()