0
我試圖得到一個sessionid
的cookie,你會檢查網頁時的cookie。例如,在Chrome右鍵單擊頁面>檢查>網絡>(按F5刷新)獲得來自請求頭中的Java
我試圖使用URLConnection的圖書館,像這樣:
URLConnection connection = new URL("http://website.com/link/to/some_wsdl?wsdl").openConnection();
內connection
的字段如下:
請求:
keys:
0 = "GET /link/to/some_wsdl?wsdl HTTP/1.1"
1 = "User-Agent"
2 = "Host"
3 = "Accept"
4 = "Connection"
values:
1 = "Java/1.8.0_131"
2 = "iccdev.ejgallo.com"
3 = "text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2"
4 = "keep-alive"
響應:
keys:
1 = "Date"
2 = "Server"
3 = "X-Powered-By"
4 = "Keep-Alive"
5 = "Connection"
6 = "Transfer-Encoding"
7 = "Content-Type"
8 = "Content-Language"
values:
0 = "HTTP/1.1 200 OK"
1 = "Tue, 20 Jun 2017 00:35:53 GMT"
2 = "Oracle-Application-Server-11g"
3 = "Servlet/2.5 JSP/2.1"
4 = "timeout=5, max=100"
5 = "Keep-Alive"
6 = "chunked"
7 = "text/xml; charset=utf-8"
8 = "en"
的問題是,我失去了一個會話ID的條目,應在請求頭帶有前綴distsite=SESSIONID=
編輯:這已經有一段時間,因爲我問過這個問題,但我會離開無論如何,如果別人有類似的問題。
從本質上講,我一直在尋找的cookie是一個由我們的LDAP的定製實現內部使用,並且只能由具有創建認證LDAP說執行。該cookie用於SSO(單點登錄),因此可以通過瀏覽器通過標準協議輕鬆獲取。由於我使用Java在沒有正確認證的情況下獲得它,因此我不會將cookie返回到我們對LDAP API的調用中的響應中。
'connection.getHeaderField( 「JSESSIONID」)''返回null'。我上面提供的字段是這種方法似乎存在的唯一字段。你知道爲什麼它不可見,除非我用像檢查或提琴手這樣的東西來看它嗎?服務器是否必須使用sessionid進行響應並以某種方式將其注入到請求標頭中? –
如果客戶端沒有發送cookie頭,那麼你不能在服務器端檢索它,我假設服務器後端是Java,在這種情況下,Cookie頭被鍵入「JSESSIONID」下(存儲頭字段的名稱cookie值),只需將'connection.getHeaderField(「JSESSIONID」)'替換爲存儲您的情況的cookie值的標題字段的名稱 – Dummy