RESTful API客户端如何为将来的请求保存oAuth令牌?

时间:2016-07-09 00:14:25

标签: java rest session authentication oauth

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的cookie来存储令牌..

httpClient.getState().getCookies()

1 个答案:

答案 0 :(得分:1)

尝试这件事:

method.getParams().setCookiePolicy(CookiePolicy.RFC_2109);

http://hc.apache.org/httpclient-3.x/cookies.html