向RESTHTTP GET添加更多参数

向RESTHTTP GET添加更多参数,rest,jboss,get,restlet,restful-url,Rest,Jboss,Get,Restlet,Restful Url,我正在尝试使用HTTP GET请求访问REST web服务 例如,下面的URI提供RESTWeb服务,返回给定类别的所有可用部分 http://localhost:8080/mycompany/parts/category 我希望对每次访问上述REST请求的用户进行身份验证/授权,并希望通过HTTP Get请求传递用户身份验证详细信息(用户名和令牌) RESTHTTPGET请求中是否有可能满足上述要求(使用HTTP头或查询参数) 或 使用HTTP POST而不是HTTP GET更好吗?因为您正

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

例如,下面的URI提供RESTWeb服务,返回给定类别的所有可用部分

http://localhost:8080/mycompany/parts/category
我希望对每次访问上述REST请求的用户进行身份验证/授权,并希望通过HTTP Get请求传递用户身份验证详细信息(用户名和令牌)

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


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

因为您正在获取信息,所以应该使用“GET”。下面是我用于将oauth_令牌添加到请求中的代码(基于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可以让这变得更容易)。

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

但是如果您不想进行身份验证,那么 你可以用GET或POST做同样的事情

但是通过
cookie

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

您想要什么样的身份验证机制?您计划使用标准的基本/摘要机制还是自定义身份验证?这取决于web服务是否接受HttpHeader身份验证令牌。一些服务使用OAuth,OAuth通常使用http头。检查维修文档,如果有。。。关于POST/GET-它们通常用于不同的操作-GET用于读取,POST用于保存。您通常不应该混合使用它们-每一个都用于特定的命令。@SureshKumar我计划使用自定义身份验证机制。我不知道在REST中是否可以使用标准的Auth方法。我正在读它