1

我正在尝试使用 HTTP GET 请求访问 REST Web 服务。

例如,以下 URI 提供了 Rest Web 服务,该服务返回给定类别的所有可用部分。

http://localhost:8080/mycompany/parts/category

我想对每次访问以上 REST 请求的用户进行身份验证/授权,并且我想通过 HTTP 获取请求传递用户身份验证详细信息(用户名和令牌)。

是否有可能满足 REST HTTP GET 请求中的上述要求(使用 HTTP 标头或查询参数)?

或者

使用 HTTP POST 而不是 HTTP GET 更好吗?

4

2 回答 2

0

由于您正在获取信息,因此您应该使用“获取”。这是我用来将 oauth_token 添加到请求中的代码(它基于 Restlet)......

import org.restlet.data.Reference;
import org.restlet.ext.oauth.OAuthUser;
import org.restlet.representation.Representation;
import org.restlet.resource.ClientResource;

Reference commitsRef = new Reference(Consts.RESOURCE_BASE + "commitments/"); 
OAuthUser u = (OAuthUser) request.getClientInfo().getUser();
String token = u.getAccessToken();  
ref.addQueryParameter("oauth_token", token);
ClientResource commitsResource = new ClientResource(getContext(), commitsRef);
Representation commitsRep = commitsResource.get();

如前所述,这是基于 Restlet 的,但在您使用的框架中可能有类似的东西。(如果您不使用框架,Restlet 可以使这更容易)。

于 2012-06-11T07:42:23.453 回答
0

如果你使用 restlet 那就更好了,因为 restlet 有丰富的 api 用于 rest 框架

但是如果没有这个,如果你想进行身份验证,你可以用 GET 或 POST 做同样的事情

但通过发送您的凭证数据cookie

并以这种方式从服务器端读取相同的 cookie @CookieParam,您可以轻松地对用户进行身份验证。

于 2012-06-13T06:09:33.273 回答