0

我正在嘗試使用用戶名和密碼登錄web服務進行身份驗證。 然後我必須在隨後的調用中使用sessionid。我使用的是Apache HttpClient(舊版本)2.0.2。如何在apache客戶端獲取會話ID httpclient

以下是我的客戶端代碼進行身份驗證。我的問題是,我如何獲得會話ID後,我認證和如何在隨後的調用中使用相同的會話ID。

import java.io.IOException; 

import org.apache.commons.httpclient.Header; 
import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.methods.GetMethod; 
public class TestHttpClient { 

    public static void main(String args[]) { 
     try { 
      HttpClient client = new HttpClient(); 
      GetMethod get = new HttpGet("www.google.com"); 

      org.apache.commons.httpclient.UsernamePasswordCredentials upc = 
        new org.apache.commons.httpclient.UsernamePasswordCredentials("user", "pwd"); 

      client.getState().setCredentials(null, null, upc); 

      get.setDoAuthentication(true); 

      client.setConnectionTimeout(60000); 

      client.executeMethod(get); 

      System.out.println(get.getResponseBodyAsString()); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 

感謝您幫助網絡開發新手。

回答

1

這裏是你如何能得到會話ID:

....... 

client.executeMethod(get); 

Header[] headers=get.getResponseHeader("jsessionid"); 

if(headers!=null && headers.length>0){ 

String sessionId=headers[0].getValue(); 

} 

我相信會有更好的方式來處理身份驗證會話,而你是在讀會話ID往復。