向RESTHTTP GET添加更多参数
我正在尝试使用HTTP GET请求访问REST web服务 例如,下面的URI提供RESTWeb服务,返回给定类别的所有可用部分向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://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方法。我正在读它