我正在尝试使用HTTP GET请求访问REST Web服务。
对于以下示例,URI提供Rest Web服务,该服务返回给定类别的所有可用部分。
http://localhost:8080/mycompany/parts/category
我想验证/授权每次访问上述REST请求的用户,并且我想通过HTTP Get Request传递用户身份验证详细信息(用户名和令牌)。
是否有可能满足REST HTTP GET请求中的上述要求(使用HTTP头或查询参数)?
或
使用HTTP POST而不是HTTP GET更好吗?
答案 0 :(得分:0)
由于您获取信息,因此您应该使用" Get"。这是我使用的代码(基于Restlet),用于将oauth_token添加到请求中...
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可以使这更容易)。
答案 1 :(得分:0)
如果你使用的是restlet,那么因为restlet具有丰富的api for rest framework
但是没有这个,如果你想进行身份验证而不是 你可以用GET或POST做同样的事情
但通过cookie
从服务器端使用@CookieParam
读取相同的cookie
通过这种方式,您可以轻松验证用户身份。