【发布时间】:2016-07-09 08:16:17
【问题描述】:
RESTful API 服务需要随每个请求一起发送一个 oAuth 令牌。因此,基于 Java Apache 的客户端必须首先请求令牌......
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
String loginUrl = "https://jerseyrules.com/api/login1?name=joe&cleartext=schmoe";
HttpMethod method = new GetMethod(loginUrl);
String responseCode = httpClient.executeMethod(method);
String token = method.getResponseBodyAsString();
只有现在客户端才能调用该 API 的实际服务方法,并且它必须将 oAuth 令牌作为每个服务的授权请求标头传递。
假设此客户端代码将在批处理模式下被多次调用,例如向收件人列表发送电子邮件。要发送实际的电子邮件,需要调用 RESTful API 服务。
客户端是否必须为每封电子邮件再次请求 oAuth 令牌?有没有一种方法可以让客户端获得一次 oAuth 令牌并将其保存在某个地方以用于后续调用?保存该 oAuth 令牌的最佳位置是什么?假设令牌将在 3600 秒后过期。
httpClient的cookies可以用来存储token吗..
httpClient.getState().getCookies()
【问题讨论】:
-
您可以将令牌保存在任何您想要的存储位置。真正重要的是使用正确的机制将其发送到每个后续请求中。通常,令牌将作为自定义标头发送。
-
谢谢,但是您对存储和重传机制有什么建议吗?
-
您可以在此处查看示例:github.com/alainlompo/performance-hub/blob/master/gatling/…。如果没有帮助,请尝试分享更详细的来源
标签: java rest session authentication oauth