我需要从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