認(rèn)證 如何使用HttpClient認(rèn)證機(jī)制?
如何使用HttpClient認(rèn)證機(jī)制?由于httpclient支持httpbasic身份驗(yàn)證模式,因此使用httpclient通過(guò)httpbasic身份驗(yàn)證的步驟相對(duì)簡(jiǎn)單。 1. 向httpclien
如何使用HttpClient認(rèn)證機(jī)制?
由于httpclient支持httpbasic身份驗(yàn)證模式,因此使用httpclient通過(guò)httpbasic身份驗(yàn)證的步驟相對(duì)簡(jiǎn)單。
1. 向httpclient的status對(duì)象添加用戶名/密碼對(duì)。請(qǐng)注意,setcredentials方法中的另一個(gè)參數(shù)是authscope對(duì)象。實(shí)際上,我們添加的每個(gè)用戶名/密碼對(duì)都與authscope對(duì)象相關(guān)聯(lián)。authscope對(duì)象確定此用戶名/密碼對(duì)的適用站點(diǎn),示例中給出的用戶名/密碼對(duì)將僅適用于www.sample.com端口80上的資源。Httpclient在與其他站點(diǎn)交互時(shí)不會(huì)使用此用戶名/密碼對(duì),這有效地防止機(jī)密數(shù)據(jù)傳輸?shù)讲槐匾恼军c(diǎn)。
2. 啟用httpclient提供的搶占式身份驗(yàn)證功能。啟用此功能后,httpclient將主動(dòng)向服務(wù)器發(fā)送基本身份驗(yàn)證數(shù)據(jù),同時(shí)請(qǐng)求上一個(gè)請(qǐng)求的URI空間內(nèi)的資源,而不是等待服務(wù)器在提交身份驗(yàn)證之前返回是否需要身份驗(yàn)證的響應(yīng)。在大多數(shù)情況下,它可以減少請(qǐng)求-響應(yīng)傳遞的次數(shù),從而間接地提高服務(wù)器的響應(yīng)能力。值得注意的是,在這種情況下,必須在authscope對(duì)象中明確指定適用的站點(diǎn),以避免將敏感數(shù)據(jù)泄漏到不相關(guān)的站點(diǎn)。
3. 創(chuàng)建一個(gè)getmethod對(duì)象,它將以get模式向受保護(hù)的資源發(fā)送HTTP請(qǐng)求。
4. setdoauthentication(true)語(yǔ)句將告訴httpclient將身份驗(yàn)證請(qǐng)求發(fā)回服務(wù)器,然后自動(dòng)將我們?cè)诓襟E1中設(shè)置的用戶名/密碼對(duì)發(fā)送到服務(wù)器以完成身份驗(yàn)證過(guò)程。
5. 執(zhí)行g(shù)et請(qǐng)求以獲取和處理受保護(hù)資源的內(nèi)容。