我需要從Java應用程序訪問某些使用基於令牌的身份驗證的RESTful Web服務。正如我所理解的,爲此目的的最佳選擇是使用像Jersey這樣的基於JAX-RS的庫,但我對這個問題非常陌生。也許有人可以通過給出適當請求的示例代碼來幫助我從Web服務獲取令牌。從Web服務獲取令牌的Java POST請求
我們有什麼:
令牌發佈服務器的- URI。它使用oAuth2授權。
- clientId和clientSecret。我們必須將它們提交給令牌發佈服務器,該服務器將驗證它們並返回令牌。
- Web服務本身的URI。
- 服務訪問的用戶名和密碼。
我的理解,得到令牌我必須與下列頭一起發送POST請求:
- 「授權」, 「基本 YWRhMGI3NTicdscsN2I0MjNjM2EwNWQ0MjM2ZTg6QU1hS0ltUEZJaUFSR3dGMmJ3NjZZVi9Ec05YZTd0ZkEerfrvegezNoND0 =」( 「基本」 + base64編碼「的clientId:clientSecret「)
- 」接受「, 」應用程序/ x WWW的形式進行了urlencoded「
- 」內容類型「, 」應用/ JSON;的OData =詳細「
及以下參數:
grant_type =密碼&用戶名= someusername &密碼= somepassword &範圍=輪廓
希望有人能幫助我與示例代碼。
還有一個[JAX-RX客戶端API](https://docs.oracle.com/javaee/7/tutorial/jaxrs-client.htm)(主要用於,但不限於REST )這可能會增加一些混淆。 – toKrause
你是對的thnx,將編輯答案,以避免混淆(在任何情況下,OP談到與服務實施有關的球衣,而不是客戶端afaik)。恕我直言,jax-rs客戶端是一個糟糕的名字,考慮到文檔本身指出客戶端不是用於jaxrs服務,而是用於任何REST服務:p –
由於Jersey作爲JAX-RS實現,情況更糟糕,還在名爲'jersey-client'的組件中實現了JAX-RS客戶端API。 – toKrause