2015-09-07 54 views
1

我正在使用httpsURLConnection將我的usernamepw發送到我想自己登錄的網絡服務器。通過httpsURLConnection登錄,如何知道是否成功

設置工作,這不是問題。問題是我想知道我是否成功登錄。

responseCode不是因爲它回覆200,不管是否將正確或錯誤的帳戶信息傳遞給Web服務器。

我目前的做法是查看服務器是否返回了cookie,如果是的話我知道我登錄了特定的網絡服務器,如果沒有,憑據是無效的。但我不確定這是否是常用方法。一個威脅是,網絡服務器改變了這種行爲,即使在解析login.php時也可能會返回一個cookie。因此我不會對我的憑證進行驗證。

+0

我不知道你的情況,因爲在SharePoint 2013身份驗證使用NTLM。如果你通過錯誤的憑證它將返回401 ...這是我以前的帖子... http://stackoverflow.com/questions/31913269/android-java-to-sharepoint-2013-ntlm-401-unauthorize/31937351 #31937351 – Nic

+0

你可以使用sessionId –

+0

來檢查它@nicholas不在我的情況。如上所述,如果連接成功,服務器響應200。並且成功的連接沒有任何事情要做,或者沒有通過的憑證是有效的。這就是爲什麼無論正確或錯誤的憑據通過,他都會返回200。 – MMike

回答

0

從服務器讀取響應文本,並知道它是否是成功與否,

BufferedReader in = new BufferedReader(
       new InputStreamReader(con.getInputStream())); 
     String inputLine; 

     while ((inputLine = in.readLine()) != null) { 
      if(inputLine.contains("yourCheckString")) 
        System.out.println("Login Successfull!"); 
     } 
相關問題