use*_*948 7 java rest service jax-rs
请考虑以下方法:
@POST
@Path("/search")
public SearchResponse doSearch(SearchRequest searchRequest);
Run Code Online (Sandbox Code Playgroud)
我希望这种方法能够了解发出请求的用户.因此,我需要访问与SearchRequest用户发送的对象关联的cookie .
在SearchRequest类中,我只有这个实现:
public class SearchRequest {
private String ipAddress;
private String message;
...
Run Code Online (Sandbox Code Playgroud)
这是请求:
{
"ipAddress":"0.0.0.0",
"message":"foobarfoobar"
}
Run Code Online (Sandbox Code Playgroud)
除了此请求,浏览器还会在用户登录系统时发送cookie集.
我的问题是如何在doSearch方法的上下文中访问cookie ?
ton*_*edz 10
您可以javax.ws.rs.CookieParam在方法的参数上使用注释.
@POST
@Path("/search")
public SearchResponse doSearch(
SearchRequest searchRequest,
@CookieParam("cookieName") Cookie cookie
) {
//method body
}
Run Code Online (Sandbox Code Playgroud)
Cookie这里使用的类是javax.ws.rs.core.Cookie你不必使用它.
您可以在任何参数上使用此注释,只要:
Cookie(与上例相同)String参数的构造函数valueOf或fromString接受单个String参数的静态方法(例如,参见Integer.valueOf(String))ParamConverterProviderJAX-RS扩展SPI 的注册实现,它返回一个ParamConverter能够为该类型进行"from string"转换的实例.List<T>,Set<T>或者SortedSet<T>,T满足上面的2,3,4或5.生成的集合是只读的.这些规则来自Jersey中实现的@CookieParam注释文档,这是JAX-RS的参考实现
| 归档时间: |
|
| 查看次数: |
9668 次 |
| 最近记录: |